我尝试使用Firebase-Notification API,当我将下游消息从控制台发送到应用程序时,该服务是完美的,但如何向主题注册用户发送消息?
我在android方面做了
FirebaseMessaging.getInstance().subscribeToTopic("TopicName");
但是当我尝试从控制台向主题发送下游消息时,它会说
This project does not have any topics
编辑: 我发现在映射主题后,最多需要1天才能显示在Firebase控制台中
答案 0 :(得分:57)
这是一条替代路径。
如果您将客户端应用程序订阅到一个不存在的主题,那么也将创建该主题,而无需调用任何firebase URL请求。
它'还需要几个小时才能在Firebase控制台上显示。
通过使用google共享示例:https://github.com/firebase/quickstart-android/tree/master/messaging,您可以确认相同内容。
FirebaseMessaging.getInstance().subscribeToTopic("news");
Log.d(TAG, "Subscribed to news topic");
答案 1 :(得分:52)
首先,鉴于IID_TOKEN
是您的注册令牌,TOPIC_NAME
是您要创建的主题,您需要通过向发送请求来创建主题
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
要检查您创建的主题,请在此网址上发出 GET 请求
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true
并在您的请求标头中插入API_KEY
Authorization: key=YOUR_API_KEY
您的主题最多需要 1天才会显示在Firebase控制台中,以便进行测试时,您可以提出卷曲请求或使用Advanced REST client等软件
答案 2 :(得分:22)
Firebase需要时间在控制台中创建新主题。就我而言,新主题是在4小时后创建的。
答案 3 :(得分:18)
您可以使用http api:
创建主题 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
<强> 1。 IID_TOKEN =设备注册令牌,您可以在Android设备上使用以下命令找到它:
String IID_TOKEN = FirebaseInstanceId.getInstance().getToken();
2.TOPIC_NAME =新主题名称
3.Authorization:key = YOUR_API_KEY 。在标题中设置此参数。截图截图: Creating new topic via Advanced rest client
YOUR_API_KEY: console.firebase.google.com
并发送请求,您将收到http状态“确定”。
然后,您可以通过以下api获取当前项目中所有主题的信息:
https://iid.googleapis.com/iid/info/IID_TOKEN?details=true
此处需要在请求标题中添加授权密钥,您将收到主题列表:response info topics
I recommend read this article about Instance ID/Server by Google