实现此目的的最佳方法是使用Firebase Cloud Functions.这将帮助您在发生有趣事情时通知用户,在您的情况下,当新内容可用时.您可以使用Cloud Firestore或Firebase Realtime Database来实现此目的.在我的回答中,我将使用新的Cloud Firestore来解决这个问题.为此,我重新编写您还实现Firebase Authentication.这将帮助您在发生新事件时向特定用户或一组用户发送通知.
为实现此目的,请考虑按照以下步骤操作.
>实施Firebase身份验证.一旦实现,就创建一个用户集合,其中每个用户将成为用户集合中的文档.您的数据库结构应如下所示:
Firebase-root
|
--- users (collection)
|
--- uid1 (document)
| |
| --- //user properties
|
--- uid2 (document)
|
--- //user properties
除了用户详细信息,您还需要向每个用户添加tokenId.你可以非常简单地使用以下代码行:
String tokenId = FirebaseInstanceId.getInstance().getToken();
用户文档应如下所示:
uid1
|
--- userName: "John"
|
--- userEmail: john@email.com
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- //other details
>现在,在名为notification的用户文档中添加一个新的coolection,在每次发生新的事件时,您需要添加需要发送的通知和发件人.它应该看起来像这样:
uid1
|
--- userName: "John"
|
--- userEmail: john@email.com
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- notifications (collection)
| |
| --- notificationId1
| |
| --- notificationMessage: "My Notification"
| |
| --- fromUser: "My Notification"
|
--- //other details
>现在您需要使用Node.js在云函数中编写一个函数,该函数将侦听此引用中出现的每个新通知:
"users/{uid}/notifications/{notificationId}"
出现新通知后,您可以使用sendToDevice函数和tokenId将通知发送给特定用户.该通知将由Android系统处理,并将显示给用户.请注意,这仅在应用程序处于后台时才有效.通过实施FirebaseMessagingService,您还可以在应用程序处于前台时收到通知.