Firebase云消息传递无法解析主题名称

Mar*_*ode 6 ios firebase firebase-cloud-messaging

我正在尝试订阅我的iOS应用中的主题,但不断收到错误:

<FIRMessaging/WARNING> Cannot parse topic name /topics/pets/cnlLksAxmdYPkDjEftDwZjFwvDw2_coffee. Will not subscribe.
Run Code Online (Sandbox Code Playgroud)

我试图订阅的代码是这样的:

FIRMessaging.messaging().subscribe(toTopic: "/topics/pets/\(name)")
Run Code Online (Sandbox Code Playgroud)

这里name是您在错误请参见主题的最后一部分.

有人知道我做错了什么吗?我已经确认Firebase消息正在接收通知和所有内容.

AL.*_*AL. 14

该/字符不是主题名称的允许字符.

允许的字符是:

  • AZ
  • AZ
  • 0-9
  • -,_,.,~,%

我可以通过在Android中测试主题名称pets/123asd和显示的日志来确认这些是唯一允许的字符:

Invalid topic name: Pets/123asd does not match the allowed format [a-zA-Z0-9-_.~%]{1,900}
Run Code Online (Sandbox Code Playgroud)

对于iOS,前缀/topics/是必需的并且仍然有效.无效字符仅适用于前缀后包含的主题名称.

  • 奇怪的是,Firebase提供了一个示例主题为"/ topics/news"[在他们的示例中](https://firebase.google.com/docs/cloud-messaging/ios/topic-messaging)以及他们刚刚使用时的日志消息一个简单的主题名称,例如`news`,他们给出了一个控制台错误:`<FIRMessaging/WARNING>警告.主题名称新闻应以/ topics/as/topics/news`为前缀 (2认同)