如何在FCM通知中创建主题

Moh*_*wad 67 android firebase google-cloud-messaging firebase-notifications

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

我在android方面做过

FirebaseMessaging.getInstance().subscribeToTopic("TopicName");
Run Code Online (Sandbox Code Playgroud)

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

This project does not have any topics
Run Code Online (Sandbox Code Playgroud)

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

Jua*_*blo 59

这是一条替代路径.

如果您将客户端应用程序订阅到一个不存在的主题,那么也将创建该主题,而无需调用任何firebase URL请求.

它还需要几个小时才能在Firebase控制台上显示.

通过使用谷歌共享示例:https://github.com/firebase/quickstart-android/tree/master/messaging,您可以确认相同.

        FirebaseMessaging.getInstance().subscribeToTopic("news");
        Log.d(TAG, "Subscribed to news topic");
Run Code Online (Sandbox Code Playgroud)


Moh*_*wad 52

首先,鉴于这 IID_TOKEN是您的注册令牌并且TOPIC_NAME是您要创建的主题,您需要通过发出POST请求来创建主题

https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Run Code Online (Sandbox Code Playgroud)

并检查您创建的主题是否在此URL上发出GET请求

 https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true
Run Code Online (Sandbox Code Playgroud)

并在您的请求标头中插入您的API_KEY

Authorization: key=YOUR_API_KEY
Run Code Online (Sandbox Code Playgroud)

您的主题最多需要1天才会显示在Firebase控制台中,因此对于测试,您可以进行卷曲请求或使用高级REST客户端等软件

  • 什么是注册令牌? (7认同)
  • fyi:这与从设备调用`subscribeToTopic()`完全相同.逻辑总是相同的:当设备订阅它或服务器发送给它时创建一个主题. (7认同)
  • @Patrick 使用 DELETE https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME (2认同)

Abh*_*hek 22

Firebase需要时间在控制台中创建新主题.就我而言,4小时后创建了新主题.

  • 这回答了我的问题.我当时希望能立即ping. (2认同)

mr.*_*fox 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();
Run Code Online (Sandbox Code Playgroud)

2.TOPIC_NAME =新主题名称

3.Authorization:key = YOUR_API_KEY.在标题中设置此参数.查看屏幕截图: 通过Advanced rest client创建新主题

YOUR_API_KEY: console.firebase.google.com

并发送请求,您将收到http状态"确定".

然后,您可以使用以下api获取当前项目中所有主题的信息:

https://iid.googleapis.com/iid/info/IID_TOKEN?details=true
Run Code Online (Sandbox Code Playgroud)

这里需要在请求标题中添加授权密钥,您将收到主题列表:响应信息主题

我建议您阅读Google提供的有关Instance ID/Server的文章