【发布时间】:2017-04-03 05:20:52
【问题描述】:
我正在使用 Firebase Messaging 向我的 iPhone 应用用户发送通知。我的数据库结构如下:
- Users
- user1
- user2
- Groups
- group1
- members
- user1
- user2
当用户加入群组时,他们会订阅与该群组对应的topic。我有一个云函数来监听该组中的写入,并在发生写入时向组主题发送通知:
exports.sendNotifs = functions.database
.ref('pets/{petId}/events/{eventId}').onWrite(event => {
const pet_Id = event.params.petId;
const payload = {
'notification': {
'title': `${toTitleCase(name)} just logged an event`,
'body': `${events[eventType]} for ${toTitleCase(petName)}`,
'sound': 'default',
}
};
admin.messaging().sendToTopic(pet_Id, payload);
});
但是,这会导致每个人都收到通知,包括触发通知的写入者。我只希望组中的其他人显示通知,因为触发用户不需要看到通知。我尝试将发送用户的 uid 作为通知的额外数据附加,并且仅在接收用户的 uid 与通知数据的 uid 不匹配时才显示通知。这在应用程序位于前台时有效,但如果它在后台则无效,因此如果用户在收到通知之前写入然后关闭应用程序,它将在他收到通知时显示给他,这是我试图避免的事情。
如何确保只有群组中的其他成员才能收到通知?消息主题不适合这个吗?
【问题讨论】:
标签: ios firebase apple-push-notifications firebase-cloud-messaging google-cloud-functions