多个Firebase服务提供商可以使用用户的Firebase设备ID密钥吗?

时间:2018-09-16 15:39:10

标签: firebase firebase-cloud-messaging

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

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

2 个答案:

答案 0 :(得分: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以及如何允许服务提供商将其发送给应用程序的哪些用户。

答案 1 :(得分:0)

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

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