【问题标题】:Sending Firebase Cloud Message using UID of user使用用户的 UID 发送 Firebase 云消息
【发布时间】:2023-03-11 00:20:02
【问题描述】:

我想构建一个允许用户向其他用户发送通知和数据消息的 Android 应用。我最近才开始使用 Firebase,而 Firebase 云消息传递对我来说仍然很困惑。

我已经实现了使用 Firebase 实例 ID 向特定 设备 发送消息。但是,在我的应用程序中,用户可以注销并使用不同的设备登录他们的帐户,所以这并不是我真正想要的。我阅读了文档,这很令人困惑,他们提到向用户组和主题发送消息(只有应用程序可以订阅,而不是用户)。

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

【问题讨论】:

    标签: android firebase notifications firebase-cloud-messaging


    【解决方案1】:

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

    Ex(这不像我的结构,但它可以帮助你想一个好的方法来做到这一点):

    -用户令牌 -idUser1 -设备 -idDevice1 -fcmToken:“xxxxx” -idDevice2 -fcmToken:“YYYY”

    希望对你有所帮助

    【讨论】:

    • 嘿,伙计,这简直太棒了!唯一的问题是,当用户从新手机登录时,他看不到通知,但我想我会想办法解决这个问题,因为我有更多使用 firebase 的经验。
    【解决方案2】:

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

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

    【讨论】:

    • 一个应用实例最多可以订阅 2000 个主题。
    猜你喜欢
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2021-07-06
    相关资源
    最近更新 更多