如何在 FCM 通知中创建主题

我正在尝试 Firebase-NotificationAPI 当我从控制台发送下游消息到应用程序时,这项服务工作得非常完美,但是如何向主题注册用户发送消息呢?

我在机器人部门做过

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

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

This project does not have any topics

编辑: 我发现,在映射主题之后,需要1天的时间才能显示在 Firebase 控制台上

82986 次浏览

首先,假设 IID_TOKEN是您的注册令牌,而 TOPIC_NAME是您想要创建的主题,那么您需要通过发出 职位请求来创建主题

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

要检查创建的主题,请对此 URL 发出 走开请求

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

并在请求头中插入 API _ KEY

Authorization: key=YOUR_API_KEY

您的主题将采取高达 一天显示在 Firebase 控制台,以便测试,您可以使卷曲请求或使用软件,如 高级 REST 客户端

这是另一条路。

如果你订阅了一个客户端应用程序到一个不存在的主题,那么这个主题也将被创建,而不需要调用任何 firebase URL 请求。

它也将需要几个小时出现在 Firebase 控制台。

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

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

Firebase 需要时间在控制台中创建新主题。在我的例子中,新主题是在4小时后创建的。

您可以使用 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 = new a subject name

3、授权: key = YOUR _ API _ KEY 。在头部设置这个参数。查看截图: 通过 Advanced rest client 创建新主题

关键: Console.firebase.google.com

并发送请求,您将收到 http 状态“确定”。

然后你可以通过下面的 api 获得当前项目中所有主题的信息:

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

这里需要添加授权关键的请求头,您将收到您的主题列表: 回应信息主题

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