主题名称区分大小写和`条件`||不工作

时间:2017-11-30 09:24:19

标签: java android firebase firebase-cloud-messaging

我在firebase云消息传递中使用API​​逻辑构建了spring java服务。

以下是示例弹出服务https://github.com/petq01/firebase-spring-service

的网址

重现:设置请求

运行项目

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"它仍然应该发送消息。不幸的是,它没有。该字段实际上区分大小写,从我的角度来看,这是一个很大的问题。

我的第二个问题:

当出现不存在的主题时。使用网址https://fcm.googleapis.com/fcm/send进行交换不会返回错误。

关于这个主题的第三个问题是: 条件OR' ||'

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

无法正常工作,我已在主题' topicChrome'上订阅了一个令牌。主题' topicFirefox'。

上的另一个标记

1 个答案:

答案 0 :(得分:1)

继续前进并添加答案,详细信息与我的评论类似。

  

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

主题名称始终区分大小写。文档中提到的不区分大小写的是指condition参数。换句话说,使用:

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

(见大写和小写的单词)没问题。

  

当出现不存在的主题时。使用网址https://fcm.googleapis.com/fcm/send进行交换不会返回错误

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

对于你的第三个问题,我已经测试了条件,它在我的结束时按预期工作。我建议发布更多详细信息(希望在一个单独的问题中,因为单个帖子中的多个问题在这里不是一个好的做法),特别显示响应 - 是错误还是成功?