具有多个主题条件的Firebase API调用

7

我在调用FCM API时遇到了一个严重的问题:

简单来说,当我使用以下内容调用API时:

URL:-https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AAAA4Kkj8iw:APA91bE......vE4Hxg
{
    "condition" : "'Software' in topics",
    "data":{
        "title":"Title",
        "message":"Hello,Via Multiple Topics"
    }
}

它能正常工作,我从订阅主题“软件”的设备上收到了通知。但是当我订阅多个主题并更改主体时,问题出现了。

{
    "condition" : "'Software' in topics || 'IOT' in topics",
    "data":{
        "title":"Title",
        "message":"Hello,Via Multiple Topics"
    }
}

那么我就收不到通知了。 我在POSTMAN上测试过,它显示消息已发送,但我没有在我的设备上收到任何通知。


我在我的端上试过了。我也使用了Postman。只订阅了“软件”主题,发送了包含多个主题的有效载荷。运行良好。 - AL.
对我也适用,你是不是想使用“||”而不是“&&”? - Aubtin Samai
请不要使用'&&',而是使用'||'。我的用例是向用户发送通知,如果他订阅了这些主题之一。我不明白为什么它对我不起作用,Android端是否需要额外的配置才能从多个主题接收通知? - Nil
这是一个漏洞。https://dev59.com/0ajja4cB1Zd3GeqP7Tfx#48284762 - kevguy
1个回答

3

根据Firebase文档,以下是正确的方法:

主题HTTP POST请求

发送到单个主题:

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
  "to": "/topics/foo-bar",
  "data": {
    "message": "This is a Firebase Cloud Messaging Topic Message!",
   }
}

向订阅了主题“dogs”或“cats”的设备发送消息:

https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{
  "condition": "'dogs' in topics || 'cats' in topics",
  "data": {
    "message": "This is a Firebase Cloud Messaging Topic Message!",
   }
}

这是Google确认的一个bug。https://dev59.com/0ajja4cB1Zd3GeqP7Tfx#48284762 - kevguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接