【问题标题】:Can a user's Firebase device ID key be used by multiple Firebase service providers?多个 Firebase 服务提供商可以使用用户的 Firebase 设备 ID 密钥吗?
【发布时间】:2018-09-16 15:39:09
【问题描述】:

如果我与其他 Firebase 服务提供商共享用户的 Firebase 设备 ID 密钥(对于安装了我的应用的用户),他们可以从他们的帐户(使用他们的身份验证密钥)向安装了我的应用的用户发送消息吗?

是的,我确实意识到共享用户的 Firebase 设备 ID 密钥的过程可能会出现问题。我要解决的问题是,我希望多个提供商能够向安装了我的应用的用户发送消息。

【问题讨论】:

    标签: firebase firebase-cloud-messaging


    【解决方案1】:

    Firebase 实例 ID(也称为注册令牌或 FCM 令牌)标识您的应用在特定设备上的安装。

    向项目中的此类令牌发送消息始终需要额外的“身份验证”形式。

    Firebase Cloud Messaging versioned REST API requires that the user has a service account。如果您为每个服务提供商创建一个服务帐号,则您授予他们对您的 Firebase 项目的完全访问权限。因此他们不仅可以发送 FCM 消息,还可以访问所有其他 Firebase 产品:例如删除您的数据库,读取您的所有用户等。

    legacy REST API for Firebase Cloud Messaging 改为使用服务器密钥来授权其调用者。如果您与其他服务提供商共享您的 FCM 服务器密钥,他们只能使用该密钥发送 FCM 消息。但他们可以向任何用户发送他们想要的任何消息。

    您可能需要考虑在 Cloud Functions for Firebase 上设置自己的 API 端点。这样您就可以自行决定如何保护该 API,以及您允许服务提供商向您的应用的哪些用户发送什么内容。

    【讨论】:

    • "您可能需要考虑在 Cloud Functions for Firebase 上设置自己的 API 端点。这样您就可以确定如何保护该 API,以及您允许服务提供商向哪些用户发送什么你的应用程序。”这就是答案。我希望在 FCM 中有一个更简单的答案。
    【解决方案2】:

    假设您所指的 Firebase 设备 ID 密钥是 FCM 注册令牌,那么在没有相应 服务器密钥 的情况下,仅拥有该值不会使其他人向其发送消息相关联。

    对于允许多个发件人到单个应用程序的用例,您可以参考Receiving messages from multiple senders 上的官方文档。我相信我的回答 here 也会有所帮助。

    【讨论】:

    • 很好的参考。谢谢! “请注意,有 100 个多个发件人的限制。”
    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 2023-04-06
    • 2016-12-31
    • 1970-01-01
    • 2016-09-20
    • 2017-10-20
    • 2016-10-24
    • 2020-09-17
    相关资源
    最近更新 更多