Firebase将消息发送到多个主题

kev*_*guy 2 firebase firebase-cloud-messaging

我一直在尝试使用以下正文通过API调用(POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send)向订阅了多个主题的用户发送云消息:

{
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer MY_ACCESS_TOKEN`
  },
  body: {
    "message": {
      "condition": "'cat' in topics || 'dog' in topics",
      "notification": {
        "title": "Message Title",
        "body": "Message Body" 
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我根据FCM文档编写了这个配置.我可以得到类似的回复:

{
  "name": "projects/myproject-b5ae1/messages/5735743068807585451"
}
Run Code Online (Sandbox Code Playgroud)

但是没有任何设备收到任何消息.

我已经将访问令牌用于其他API,这有效.我也知道FCM文档也为cURL请求提供了不同的主体,我也试过但不行.

奇怪的是,如果我只提供一个主题,则condition消息实际上已成功发送到订阅的设备.我写错了吗?

我已经在Stackoverflow上引用了其他解决方案,但一切仍然无效:

具有多个主题的Firebase API调用

如何将FCM推送通知发送到多个主题

kev*_*guy 9

在与Firebase支持人员交谈后,他们指出我遇到的问题是他们仍在尝试修复的已知错误.目前还没有具体的修复时间表.

因此,我的代码没有问题,如果我真的想使用"||"(OR)运算符,我必须自己找出一个解决方法.

我目前的解决方法是使用数据库跟踪订阅者(因为Firebase不提供订阅者查询),然后通过查找不同主题的订阅者联合来自己实现OR条件.

在此输入图像描述

PS我只是不明白为什么是downvotes,我实际上在这里发现了一个错误并引用了我在SO上找到的所有解决方案,然后在这里提出问题.