我有以下使用离子云和Firebase云消息传递的推送通知代码。
let topic = "topics/" + this.user.userRole + "/" + this.user.location;
const options:PushOptions = {
android: {
senderID: "XXXXX",
sound: true,
vibrate: true,
//topics: [topic]
},
ios: {
alert: "true",
badge: false,
sound: "true"
},
windows: {}
};
它可以工作,但是一旦我尝试订阅特定主题,那么当从android运行时应用程序崩溃。
当我使用subscribe时,按以下方式:
pushObject.on('registration').subscribe((data:any) => {
console.log("device registered -> ", data);
this.saveToken(data.registrationId);
let topic = "topics/" + this.user.userRole + "/" + this.user.location;
pushObject.subscribe(topic).then((res:any) => {
console.log("subscribed to topic: ", res);
});
});
同样,没有任何反应,而且我没有收到任何显示我能够订阅某个主题的信息。
如何完成主题订阅?
答案 0 :(得分:0)
我在android studio中打开项目并从那里运行它,而不是使用ionic-cli。 我看到有关无效主题名称的IllegalArgumentException。 这个answer帮助我解决了主题名称中可接受字符的问题。