首页 文章

如何在FCM通知中创建主题

提问于
浏览
64

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

我在android方面做过

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

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

This project does not have any topics

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

4 回答

  • 18

    这是一条替代路径 .

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

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

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

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

    首先,假设 IID_TOKEN 是您的注册令牌并且 TOPIC_NAME 是您要创建的主题,则需要通过向 POST 请求创建主题

    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 day 才会显示在Firebase控制台中,以便进行测试时您可以进行卷曲请求或使用像Advanced REST client这样的软件

  • 55

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

  • 22

    您可以使用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 . 在 Headers 中设置此参数 . 截图: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
    

    这里需要在请求 Headers 中添加授权密钥,您将收到主题列表:response info topics

    I recommend read this article about Instance ID/Server by Google

相关问题