如何在FCM通知中创build主题

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

我在android方面

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

但是当我尝试从控制台发送下游消息主题说

 This project does not have any topics 

编辑:我想到,映射主题后,需要花费1天时间才能显示在Firebase控制台中

这是一个替代path。

如果您将客户端应用程序订阅到未知主题,那么也将创build主题,而不必调用任何firebase url请求。

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

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

  FirebaseMessaging.getInstance().subscribeToTopic("news"); Log.d(TAG, "Subscribed to news topic"); 

首先,假设IID_TOKEN是您的注册令牌,并且TOPIC_NAME是您想要创build的主题,则需要通过发出POST请求来创build主题

 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME 

并检查您创build的主题对此URL进行GET请求

  https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=true 

并在您的请求头文件中插入您的API_KEY

 Authorization: key=YOUR_API_KEY 

您的主题最多需要1天的时间才能显示在Firebase控制台中,以便进行testing,您可以进行curl请求或使用软件,如高级REST客户端

Firebase需要时间在控制台中创build新的主题。 就我而言,4个小时后创build了新的话题。

你可以用http api创build一个主题:

https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

1. IID_TOKEN =设备注册令牌,你可以在你的Android设备上使用以下命令find它:

 String IID_TOKEN = FirebaseInstanceId.getInstance().getToken(); 

2.TOPIC_NAME =新的主题名称

3.授权:key = YOUR_API_KEY 。 在标题中设置此参数。 看看截图: 通过高级rest客户端创build新的主题

YOUR_API_KEY: console.firebase.google.com

并发送请求,你会收到http状态“OK”。

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

 https://iid.googleapis.com/iid/info/IID_TOKEN?details=true 

这里需要添加授权密钥的请求头,你会收到你的主题列表: 响应信息主题

我build议阅读这篇关于Google的实例ID /服务器的文章