具有特定firestore字段的用户的Firebase推送通知



我目前正在制作一个类似聊天室的应用程序,可以与firestore一起将用户连接到主机的会话。我遇到了一个问题,客户端设备失去连接/停止监听firestore更改时锁定/后台太长时间(据我所知,这是因为设备试图通过杀死长寿命进程来节省电力)。我了解到一个解决方法是在更改firestore文档之前向设备发送FCM推送通知,这样它就会重新唤醒应用并让应用侦听firestore文档的更改。我不确定如何实现推送通知,但我了解到它需要用户特定的令牌(必须受到保护)。忽略我不确定如何实现推送通知的事实(新手友好的指针将受到赞赏),将用户令牌上传到firestore作为一个字段是一个可行的方法吗?我想我可以使用我的辅助功能(它获得特定会话的所有非主机)也向每个人发送推送通知。

_vibrateAllDevices() async {
var lobbies = await lobby
.where('lobbyCode', isEqualTo: _lobbyCode)
.where('userRole', isEqualTo: 2)
.get();
lobbies.docs.forEach(
(document) async {
document.reference.update(<String, dynamic>{'vibrate': true});
},
);
}

每个大厅预计有2-30人,所以每个人循环似乎不是那么大的问题。这似乎是一个可行的方法,还是将令牌存储到firestore是不安全的?我还应该提到的是,每个大厅预计只开放很短的时间(最多3小时),所有信息都将立即删除。

如果另一个人订阅了您自己的主题,请确保在创建Firestore字段时另一个人也订阅了该主题。当你触发通知时,在FirebaseMessages服务类的onmessagerreceive方法中自动接收另一个人的通知。在firebase和Firestore中触发通知的方法是相同的,因为服务器密钥总是相同的。我建议您阅读以下文档:https://medium.com/mindorks/send -设备-设备-推- - -通知- - -使用-重火力点——云——通讯——没有使用外部- 769476 c79ffd

最新更新