How To Create Topic in FCM Notifications
I'm trying Firebase-Notification API the service is worked perfect when i send downstream message from console to app, but how to send message to topic registered users ?
i did in android side
FirebaseMessaging.getInstance().subscribeToTopic("TopicName");
but when i try send downstream message from console to topic it's says
This project does not have any topics
EDIT : i figured out that after mapping the topic it's take up to 1 day to show up in Firebase Console
Solution 1:
This is an alternate path.
If you subscribe a client app to an unexisting topic then the topic will also be created without having to call any firebase url request.
It' will also take a couple of hours to appear on Firebase Console.
By using google shared example: https://github.com/firebase/quickstart-android/tree/master/messaging you can confirm the same.
FirebaseMessaging.getInstance().subscribeToTopic("news");
Log.d(TAG, "Subscribed to news topic");
Solution 2:
First, given that IID_TOKEN
is your registration token and TOPIC_NAME
is the topic you want to create, you need to create topic by making a POST request to
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
And to check your created Topics make a GET request on this URL
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true
and insert your API_KEY in your Request HEADERS
Authorization: key=YOUR_API_KEY
Your topic will take up to 1 day to show up in Firebase console so for testing you can make curl request or use sofware like Advanced REST client
Solution 3:
You can create a topic with http api:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
1. IID_TOKEN = Device registration token, you can find it with following command on your android device :
String IID_TOKEN = FirebaseInstanceId.getInstance().getToken();
2.TOPIC_NAME = new a topic name
3.Authorization: key=YOUR_API_KEY. Set this parameter in the header. Look to screenshot: Creating new topic via Advanced rest client
YOUR_API_KEY: console.firebase.google.com
and send request and you will be receive http status "OK".
Then you can get infos about all your topics in your current project with following api :
https://iid.googleapis.com/iid/info/IID_TOKEN?details=true
here need add Authorization key to header of request and you will be receive your topics list: response info topics
I recommend read this article about Instance ID/Server by Google