如何在FCM通知中创建主题

时间:2016-05-21 19:45:04

标签: android firebase google-cloud-messaging firebase-notifications

我尝试使用Firebase-Notification API,当我将下游消息从控制台发送到应用程序时,该服务是完美的,但如何向主题注册用户发送消息?

我在android方面做了

FirebaseMessaging.getInstance().subscribeToTopic("TopicName");

但是当我尝试从控制台向主题发送下游消息时,它会说

This project does not have any topics

编辑: 我发现在映射主题后,最多需要1天才能显示在Firebase控制台中

4 个答案:

答案 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