【问题标题】:Sending push notification to a specific user in cloud function FCM在云功能 FCM 中向特定用户发送推送通知
【发布时间】:2021-03-03 15:52:48
【问题描述】:

请注意,此问题与在客户端获取设备令牌无关。

我对@9​​87654321@ 和firebase 很陌生,我想实现FCM 的推送通知服务。我打算做的是使用其设备令牌在我的nodejs应用服务器或云功能(不通过控制台)上向特定设备发送通知。但正如我所发现的,FCM 没有提供任何 API 来通过用户名获取令牌。假设我想向用户 X 发送通知(暂时假设一个用户只在单个设备上签名)。现在使用函数sendToDevice(),我可以将消息发送到特定设备。但是我怎么知道用户 X 的设备令牌。我需要自己将令牌存储在 firebase 数据库中吗?或者我可以在不存储 FCM 令牌的情况下相处吗?

请指导我,因为 firebase 文档对此并不清楚。

【问题讨论】:

    标签: android firebase firebase-cloud-messaging


    【解决方案1】:

    将特定用户的设备令牌保存在 DB 中,然后您可以使用 fcm-node npm,其中有一个简单的功能可以向特定设备令牌发送推送。

    您还需要使用 FCM 服务器密钥,您可以在 Firebase 控制台上轻松获得该密钥。

    【讨论】:

    • 我有 2 个关于 FCM 的简单问题:1。我看到有些人使用 Admin SDK 在 nodejs 中推送 FCM 通知,而有些人在不使用 admin SDK 的情况下这样做。第一个和第二个有什么不同?
    • 2.当我们谈论应用服务器时,我们究竟在谈论什么:部署到 firebase 的云功能或可以在本地机器上运行的简单 nodejs 服务器?
    • @VIPULTYAGI 1-你可以根据自己的方便使用,这取决于你,有些人不想添加额外的npm,所以他们直接这样做
    • 请看我上面的2个问题
    • 如果是这种情况,你不认为这是一个安全问题,因为即使没有管理 SDK 的人也可以推送通知。
    【解决方案2】:

    FCM 不提供将设备令牌与可能在多个设备上使用您的应用的个人用户相关联的方法。您需要编写代码,将设备令牌与用户帐户相关联,方法是将该令牌连同用户 ID 一起发送到您的后端。只有这样,您才能为该用户收集 FCM 令牌,并在他们的任何设备上向他们发送消息。

    【讨论】:

    • 是的,这就是我要问的。所以这意味着我需要将令牌存储在数据库中? FCM不为此提供任何api吗?
    • 你必须自己收集和存储令牌。
    • 请告诉我,我真的需要将 FCM 令牌发送到应用服务器以将它们存储在数据库中,还是可以将它们存储在客户端本身的数据库中?
    • 您可以做任何满足您应用需求的事情。对于 FCM 消息传递,您将需要后端的设备令牌。
    • 后端是指firebase云功能??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2021-12-04
    • 1970-01-01
    • 2020-02-02
    • 2017-08-15
    • 1970-01-01
    • 2017-08-19
    相关资源
    最近更新 更多