使用用户的UID发送Firebase云消息

Ash*_*hna 3 notifications android firebase firebase-cloud-messaging

我想构建一个Android应用程序,允许用户向其他用户发送通知和数据消息.我最近才开始使用Firebase,而Firebase Cloud Messaging对我来说仍然很混乱.

我已经实施了使用Firebase实例ID 向特定设备发送消息的方法.但是,在我的应用程序中,用户可以使用不同的设备注销并登录其帐户,因此这不是我想要的.我阅读了文档,这非常令人困惑,他们提到向用户组发送消息,以及主题(只有应用可以订阅,而不是用户).

有没有办法只使用他们的UID将推送通知直接发送给另一个用户或一组用户?如果没有,还有其他方法可以实现吗?

小智 9

我用它将FCM令牌存储在设备结构中.用户登录时,将deviceData添加到userToken结构中.用户注销时需要清除deviceData.这样,您只会向已记录的设备发送通知.

Ex(这不像我的结构,但它可以帮助你想知道这样做的好方法):

-userToken
  -idUser1
     -device
         -idDevice1
             -fcmToken: "xxxxx"
         -idDevice2
             -fcmToken: "YYYYY"  

希望我帮助你


Ash*_*hna 1

好吧,为了确保用户登录时可以在多个设备上使用,我只需让设备订阅一个名称等于用户 UID 的主题。现在,如果我想向用户发送通知,我只需在主题上发送一条 FCM 消息,其名称等于用户的 UID!

示例:如果我的 UID 等于“asdf”,则每当我使用多个设备登录时,每个设备都会自动订阅名为“asdf”的主题。现在,如果我从服务器发送关于此主题的 FCM,我登录的所有设备都会获取此通知。

  • 一个应用实例最多可以订阅2000个主题。 (4认同)