实现这一目标的最简单方法是使用Firebase 的云功能。这将帮助您在发生有趣的事情时通知用户,在您的情况下,当用户将内容(数据)添加到数据库时。为了使其发挥作用,您需要实施Firebase 身份验证。这将帮助您在发生新情况时向特定用户或一组用户发送通知。
因此,请考虑遵循以下步骤。
一、落实Firebase Authentication
。一旦实现,就创建一个用户集合,其中每个用户都将是用户集合中的一个文档。您的数据库结构应如下所示:
Firebase-root
|
--- users (collection)
|
--- uid1 (document)
| |
| --- //user properties
|
--- uid2 (document)
|
--- //user properties
除了用户详细信息之外,您还需要为每个用户添加tokenId
。您可以使用以下代码行非常简单地获得它:
String tokenId = FirebaseInstanceId.getInstance().getToken();
用户文档应该如下所示:
uid1 (document)
|
--- userName: "John"
|
--- userEmail: [email protected]
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- //other specific user details
其次,在用户文档中创建一个名为的新集合notifications
,您应该在其中添加需要发送给管理员的所有通知。需要的属性是notification message
和sender
。用户文档应如下所示:
uid1 (document)
|
--- userName: "John"
|
--- userEmail: [email protected]
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- notifications (collection)
| |
| --- notificationId1
| |
| --- notificationMessage: "My Notification"
| |
| --- fromUser: "My Notification"
|
--- //other details
请参阅嵌套notifications
托管在用户文档下的集合。
现在你需要使用Node.js编写一个函数Cloud Functions
它将侦听此引用中出现的每个新通知:
"users/{uid}/notifications/{notificationId}"
Here是如何编写 Node.js 函数的简单示例。
一旦出现新通知,您可以使用sendToDevice
函数和tokenId
将通知发送给特定用户。该通知将由 Android 系统处理并显示给用户。请注意,这仅当应用程序处于background
。当应用程序运行时您也可以收到通知foreground
通过实施FirebaseMessagingService
.
我也在我的一篇文章中解释过教程一步一步,你可以怎样发送通知当你需要的时候。