向 android 工作室中的用户发送通知

Send notifications to user in android studio

我想在我的 Android 应用程序中构建一个通知系统,以便我可以在发生事件时向某人发送通知。例如,我的应用程序是关于一个社交系统的,它使用 Firestore 数据库 (Firebase) 来保存其用户(这意味着我在那里有一个 'users' 集合),并且我有一个 'Add as Friend' 功能。

一切正常,但我想添加一个功能,当 user1user2 添加为好友时,我想向 user2 发送有关该消息的通知。
我在 google 中搜索并看到了这个 post: https://www.geeksforgeeks.org/how-to-push-notification-in-android-using-firebase-cloud-messaging/

现在,据我了解,这对我没有太大帮助,因为它仅由我(而不是特定用户)发送来自 FCM 的通知。
问题是,我真的不知道要搜索什么(或输入什么 google)才能找到我要找的东西。

我想到的一些想法:

但我有点卡在这里,我想知道一些想法,或者如果你们有关于我如何实现它的线索,我真的不知道我应该寻找什么。

非常感谢,很抱歉这么长post。

Firebase 为每个用户创建一个 userID 和一个 usertoken,它是连接到此 userID 的设备的临时标识符。当在数据库 (firestore) 中创建一个新用户令牌以及您用来识别此人的用户时,您需要保存用户令牌。

当有人将此人添加为朋友时,您可以在数据库中添加一条通知,告知有人从 person1 向 person2 发出了请求。 数据库中的此更改可以触发对数据库中的更改做出反应的云功能。

触发的云功能向正在添加为朋友的人发送 FCM。此 FCM 可以是纯通知,也可以是您发送数据并让您的应用处理此数据的处理方式(保存在本地数据库中或显示为自定义通知)。

关键字是:FCM、Notification、Firestore、云函数和 firebase 令牌

编辑(回答 1. 评论):在设备上创建 Firebase userID 和 usertoken。在本教程中,您实现了 FCM(我没有读完整)和一个名为 FirebaseMessagingService 的 class,您可以从中继承。当消息发送到设备并包含名为 onNewToken 的方法时,将调用此 class。当 Firebase 服务器为您的设备创建令牌并将其发送到设备时,将调用此消息。在这种方法中,您可能希望将新令牌发送到您的数据库并将其保存为该设备用户的标识符。 Firebase 使用 Tokens 来识别设备,向其发送消息(您可以阅读有关 FCM 的详细信息)

云函数是您可以在您的 firebase 项目中部署的东西,它会在事件发生时被触发。例如 http 调用,或数据库中的特定更改。云函数是用 JS 编写的,需要为您的 firebase 项目部署。 (云功能不是免费的,每次调用都需要付费,但是每个月有几千次免费使用。)

您通过创建指向特定令牌、令牌或用户组的 firebase 消息,将 FCM 发送给特定的人。要识别您要向其发送消息的人,您需要拥有此用户的令牌,这就是为什么您要将令牌从 1. 部分保存在数据库中并始终更新令牌,当令牌在设备。

请记住,一个用户可能会使用多个设备。您应该有一个标识符,例如用户名,并沿着这个用户名保存多个 firebaseIds 和 Firebase 令牌。单个 FCM 最多可以定向到 100 个令牌。