我一直在尝试使用以下正文通过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上引用了其他解决方案,但一切仍然无效:
1 回答
在与Firebase支持人员交谈后,他们指出我遇到的问题是他们仍在尝试修复的已知错误 . 目前还没有具体的修复时间表 .
因此,我的代码没有问题,如果我真的想使用“||”(OR)运算符,我必须自己找出一个解决方法 .
我目前的解决方法是使用数据库跟踪订阅者(因为Firebase不提供订阅者查询),然后通过查找不同主题的订阅者联合来自己实现OR条件 .
附:我只是不明白为什么是downvotes,我实际上在这里发现了一个错误并引用了我在SO上找到的所有解决方案,然后在这里提出问题 .