【问题标题】:Firebase Send Message to Multiple TopicsFirebase 向多个主题发送消息
【发布时间】:2018-06-23 16:59:09
【问题描述】:

我一直在尝试通过 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" 
      }
    }
  }
}

我根据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

【问题讨论】:

    标签: firebase push-notification notifications firebase-cloud-messaging


    【解决方案1】:

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

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

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

    附:我只是不明白为什么会投反对票,实际上我在这里发现了一个错误,并在此处提出问题之前参考了我可以在 SO 上找到的所有解决方案。

    【讨论】:

    • 你知道 Firebase 团队有没有修复它吗?
    • @tom10271 AFAIK,他们将文档更改为现在只能支持两个逻辑运算符,但我还没有测试过。
    • 我已经询问了 Firebase 支持团队,他们回复说他们现在最多可以支持 5 个主题,并且限制 2 个条件标准已经消失。他们将相应地更新文档,但没有确切的预期日期。
    • 由于某种原因,我在使用这个时遇到了同样的问题:主题中的“Firestone”||主题中的“第二”||主题中的“另一个”.. 它不起作用,但如果我发送到一个主题它会起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    相关资源
    最近更新 更多