首页 文章

Firebase将消息发送到多个主题

提问于
浏览
1

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

{
  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" 
      }
    }
  }
}

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

{
  "name": "projects/myproject-b5ae1/messages/5735743068807585451"
}

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

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

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

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

Firebase API call with multiple topics in condition

How to send FCM Push Notifications to multiple topics

1 回答

  • 8

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

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

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

    enter image description here

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

相关问题