Java 主题名称区分大小写和“条件”无效

Java 主题名称区分大小写和“条件”无效,java,android,firebase,firebase-cloud-messaging,Java,Android,Firebase,Firebase Cloud Messaging,我已经在firebase云消息传递中使用API逻辑构建了SpringJava服务 下面是示例spring服务的URL 复制:设置请求 运行项目 POST http://localhost:8080/notification/messages Headers: firebase-server-key : [your generated server key] Body: { "condition": " 'topic' in topics", "title": "Hello,

我已经在firebase云消息传递中使用API逻辑构建了SpringJava服务

下面是示例spring服务的URL

复制:设置请求

运行项目

POST http://localhost:8080/notification/messages

Headers: 
firebase-server-key : [your generated server key]
Body:

{
    "condition": " 'topic' in topics",
    "title": "Hello,Via Multiple Topics",
    "body": "Hello,Via Multiple Topics"
}
若要向条件发送消息,必须首先创建主题

复制:创建主题

POST https://iid.googleapis.com/iid/v1/{token}/rel/topics/{topic}

headers 
Authorization  : key=[firebase-server-key]

200 OK 
根据API的文档,条件字段定义为不区分大小写。 但实际上,它是区分大小写的

我正在用相同的主题名做两个测试(使用大写和小写字符)。我试图发送消息的主题的原始名称被定义为“主题”。因为字段必须不区分大小写,所以我尝试使用“topiC”,它仍然应该发送消息。不幸的是,事实并非如此。该字段实际上是区分大小写的,从我的角度来看,这是一个巨大的问题

我的第二个问题:

当出现不存在的主题时。带有URL的Exchange不返回错误

关于这个问题,我的第三个问题是: 条件或“| |”

 "condition": "  'topicChrome' in topics || 'topicFirefox' in topics "

不起作用,我已在主题“topicChrome”上订阅了一个令牌,在主题“topicFirefox”上订阅了另一个令牌。

我将继续添加答案,详细信息与我的评论类似

根据API的文档,条件字段定义为不区分大小写。但实际上,它是区分大小写的

主题名称始终区分大小写。文档中提到的不区分大小写是指
条件
参数。换言之,使用:

"condition": "'topicChrome' IN TOPICS || 'topicFirefox' in topics"
(见大写和小写字母)就可以了

当出现不存在的主题时。带有URL的Exchange不返回错误

这是预期的工作。开发人员有责任跟踪哪些主题存在或不存在(即哪些主题有订户或没有订户),类似于设备组(请参阅我的答案)


关于你的第三个问题,我已经测试了条件,它在我这方面的效果与预期一样。我建议发布更多细节(希望是在单独的问题中,因为在一篇文章中多个问题并不是一个好的做法),特别是显示回答——是错误还是成功?

Hi。您是否将通知发送到Android客户端应用程序或iOS?另外,你能发布一个负载示例吗?@AL。我已经用示例代码和请求描述编辑了我的问题。我正在向浏览器设备和Android设备发送通知。酷。对于第二个问题,这只是FCM主题的常见行为,不管主题是否存在,它都会返回一个
messageId
。如果我有多余的时间,我会设法重新安排其他人,然后在这里给你回复。干杯@我可以给你我的示例web项目和服务器密钥,但我认为这必须是私有的?没关系。我这里有一些FCM的东西。是的,您的服务器密钥必须保持安全。关于您最后的答案。就我而言,它不起作用。请参见重现问题的示例代码