tR4*_*R4x 3 android android-notifications firebase
假设我有一个 Android 应用程序,它只是使用从随机 REST API 获得的内容构建一个 ListView。
现在想象一下,当 API 上有新内容可用时,我需要发送推送通知。最简单的方法是什么?
我对 Android 上的推送通知过程有点困惑。我查看了 Firebase,但我不知道我是否需要在 Firebase 上有一个数据库来存储结果,因为新内容可通过 API 获得,然后触发数据库更新通知,或者如果我不需要需要一个数据库等。
正如你所看到的,我很不清楚,所以非常感谢任何帮助。谢谢 !
实现这一目标的最佳方法是使用Firebase Cloud Functions。这将帮助您在发生有趣的事情时通知用户,在您的情况下,当新内容可用时。您可以使用Cloud Firestore或Firebase 实时数据库来实现这一点。我将在我的回答中向您解释如何使用新的Cloud Firestore. 为此,我建议您也实施Firebase 身份验证。这将帮助您在发生新事情时向特定用户或一组用户发送通知。
为了实现这一点,请考虑遵循以下步骤。
实施Firebase Authentication。一旦实现,就创建一个用户集合,其中每个用户都将是用户集合中的一个文档。您的数据库结构应如下所示:
Firebase-root
|
--- users (collection)
|
--- uid1 (document)
| |
| --- //user properties
|
--- uid2 (document)
|
--- //user properties
Run Code Online (Sandbox Code Playgroud)
除了用户详细信息之外,您还需要为每个用户添加一个tokenId. 您可以使用以下代码行非常简单地获得它:
String tokenId = FirebaseInstanceId.getInstance().getToken();
Run Code Online (Sandbox Code Playgroud)
用户文档应如下所示:
uid1
|
--- userName: "John"
|
--- userEmail: john@email.com
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- //other details
Run Code Online (Sandbox Code Playgroud)现在,向名为 的用户文档添加一个新的coolection notifications,您需要在其中添加notification您需要发送的 和sender,每当有新的事情发生时。它应该是这样的:
uid1
|
--- userName: "John"
|
--- userEmail: john@email.com
|
--- tokenId: "e_wLukMfq..." //very long token
|
--- notifications (collection)
| |
| --- notificationId1
| |
| --- notificationMessage: "My Notification"
| |
| --- fromUser: "My Notification"
|
--- //other details
Run Code Online (Sandbox Code Playgroud)现在您需要使用Node.js编写一个函数,Cloud Functions该函数将侦听此引用中出现的每个新通知:
"users/{uid}/notifications/{notificationId}"
Run Code Online (Sandbox Code Playgroud)
出现新通知后,您可以使用sendToDevicefunction 和tokenId将通知发送给特定用户。通知将由 Android 系统处理并显示给用户。请注意,这仅在应用程序处于backgroud. 您也可以foreground通过实施FirebaseMessagingService.
| 归档时间: |
|
| 查看次数: |
3125 次 |
| 最近记录: |