内容变更推送通知

2024-04-24

假设我有一个 Android 应用程序,它仅使用从随机 REST API 获取的内容构建 ListView。

想象一下,现在我需要在 API 上有新内容时发送推送通知。最简单的方法是什么?

我对 Android 上的推送通知过程有点困惑。我查看了 Firebase,但我不知道我是否强制需要 Firebase 上的数据库来存储结果,因为新内容可以通过 API 获得,然后触发数据库更新通知,或者如果我不需要需要数据库等

如您所见,我对此非常不清楚,因此非常感谢您的帮助。谢谢 !


实现这一目标的最佳方法是使用Firebase 云功能 https://firebase.google.com/docs/functions/use-cases。这将帮助您在发生有趣的事情时(在您的情况下,当有新内容可用时)通知用户。您可以使用云Firestore https://firebase.google.com/docs/firestore/ or Firebase 实时数据库 https://firebase.google.com/docs/database/为了达成这个。我将在我的回答中向您解释如何使用新的Cloud Firestore。为此,我建议您也实施Firebase 身份验证 https://firebase.google.com/docs/auth/。这将帮助您在发生新情况时向特定用户或一组用户发送通知。

为了实现这一目标,请考虑遵循以下步骤。

  1. 实施 Firebase 身份验证。一旦实现,就创建一个用户集合,其中每个用户都将是用户集合中的一个文档。您的数据库结构应如下所示:

     Firebase-root
         |
         --- users (collection)
               |
               --- uid1 (document)
               |    |
               |    --- //user properties
               |
               --- uid2 (document)
                    |
                    --- //user properties
    

除了用户详细信息之外,您还需要为每个用户添加tokenId。您可以使用以下代码行非常简单地获得它:

    String tokenId = FirebaseInstanceId.getInstance().getToken();

用户文档应该如下所示:

    uid1
     |
     --- userName: "John"
     |
     --- userEmail: [email protected] /cdn-cgi/l/email-protection
     |
     --- tokenId: "e_wLukMfq..." //very long token
     |
     --- //other details
  1. 现在,将一个新集合添加到名为的用户文档中notifications,您需要在其中添加notification你需要发送和sender,每次有新的事情发生。它应该看起来像这样:

     uid1
      |
      --- userName: "John"
      |
      --- userEmail: [email protected] /cdn-cgi/l/email-protection
      |
      --- tokenId: "e_wLukMfq..." //very long token
      |
      --- notifications (collection)
      |      |
      |      --- notificationId1
      |              |
      |              --- notificationMessage: "My Notification"
      |              |
      |              --- fromUser: "My Notification"
      |
      --- //other details
    
  2. 现在你需要使用Node.js https://nodejs.org/en/编写一个函数Cloud Functions它将侦听此引用中出现的每个新通知:

     "users/{uid}/notifications/{notificationId}"
    

一旦出现新通知,您可以使用sendToDevice函数和tokenId将通知发送给特定用户。该通知将由 Android 系统处理并显示给用户。请注意,这仅当应用程序处于background。当应用程序位于foreground通过实施FirebaseMessagingService.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内容变更推送通知 的相关文章

随机推荐