我想构建一个Android应用,允许用户向其他用户发送通知和数据消息。我最近才开始使用Firebase,而Firebase Cloud Messaging对我来说仍然很混乱。
我已经实施了使用Firebase实例ID向特定设备发送消息。但是,在我的应用程序中,用户可以使用不同的设备注销并登录其帐户,因此这不是我想要的。我阅读了文档,这非常令人困惑,他们提到向用户组发送消息,以及主题(只有应用可以订阅,而不是用户)。
有没有办法只使用他们的UID将推送通知直接发送给另一个用户或一组用户?如果没有,还有其他方法可以实现吗?
答案 0 :(得分:9)
我用它将FCM令牌存储在设备结构中。用户登录时,将deviceData添加到userToken结构中。用户注销时需要清除deviceData。这样,您只会向已记录的设备发送通知。
Ex(这不像我的结构,但它可以帮助你想知道这样做的好方法):
-userToken -idUser1 -device -idDevice1 -fcmToken: "xxxxx" -idDevice2 -fcmToken: "YYYYY"
希望我帮助你
答案 1 :(得分:0)
好吧,为了确保在用户登录时这可以在多个设备上运行,我只是让设备订阅一个名称等于用户UID的主题。现在,如果我想向用户发送通知,我只需在主题上发送FCM消息,其名称等于用户的UID!
示例:如果我的UID等于“asdf”,则每当我使用多个设备登录时,每个设备都会自动订阅名为“asdf”的主题。所以,现在,如果我从服务器上发送关于此主题的FCM,我登录的所有设备都将获取此通知。