在Firebase云消息传递中管理服务器密钥

7

我刚打开了一个Firebase Cloud Messaging项目,用于Android推送消息。

齿轮图标显示一个服务器密钥(为明显原因而被混淆):

enter image description here

我想要多个密钥,这样我就可以将它们分发给服务器和开发人员,并在必要时撤销已受损的密钥。

我如何管理(添加和删除)Firebase中的服务器密钥?

4个回答

2
更新:
当前,根据文档中所述生成新的服务器密钥应该按照以下步骤进行:

从2016年9月开始,只能在Firebase控制台的设置面板的Cloud Messaging选项卡中创建新的服务器密钥。需要创建新的服务器密钥的现有项目可以在不影响其现有配置的情况下导入到Firebase控制台中。

有关项目迁移步骤,请参见我在此处的回答。
生成服务器密钥,Firebase控制台没有生成密钥的方法。可以通过Google开发者控制台来完成:
  1. 进入Google开发者控制台
  2. 在左侧面板上,单击凭据
  3. 在凭据选项卡下,单击创建凭据
  4. 选择API密钥

步骤详见我的回答这里

在选择API密钥之后,它将直接创建一个API密钥,而不会询问密钥类型(服务器、Android、浏览器、iOS)。它只允许您设置一些限制,这些限制取决于您要生成的API密钥。
默认情况下,生成的密钥没有限制,这使得密钥容易受到攻击,因此强烈建议您为API密钥添加限制。在这种情况下,由于您正在使用它用于 FCM(需要服务器密钥),您必须添加IP地址限制并仅允许特定的服务器IP地址。
说到这里,我不知道你打算如何将多个服务器密钥集成到一个 Firebase 项目中。为什么不利用IP地址限制,并删除被认为是受损的服务器IP地址呢?

2
拥有不同的服务器密钥用于生产/开发环境可能很有用,但显然使用开发者控制台添加新的API密钥不能作为FCM服务器密钥。 - Meriw
1
@Meriw 是的。您需要在Firebase控制台中创建一个单独的项目,并从那里使用自动生成的项目。 - AL.
嗨,我正在尝试从PHP向Android和iOS发送通知,但是两个应用程序的服务器密钥不同,我应该设置条件以使用Android的服务器密钥发送Android通知和iOS的密钥发送iOS消息吗? - ɹɐqʞɐ zoɹǝɟ
如果注册的方式是Android和iOS分开的,那么是的,你应该保留这个条件。 - AL.

1
无法在一个项目中拥有多个云消息传递服务器密钥。建议您为应用程序开发的分阶段环境创建多个Firebase项目。
如果需要,您可以在Google Developer Console中重新生成服务器密钥。
1. 在屏幕左上角验证是否选择了正确的项目。 2. 在左侧面板中,单击凭据。 3. 在凭据选项卡下,单击服务器密钥(由Google服务自动创建)。 4. 单击重新生成密钥按钮。 5. 将弹出确认框询问是否要替换当前密钥,然后单击替换密钥按钮。
请注意,新密钥将立即可用。当前密钥将在24小时内永久停用。
完成所有这些步骤后,您可以检查Firebase项目的云消息传递服务器密钥是否已更新。

1
在Firebase中,服务器密钥是自动生成的。如果您在Google开发者控制台中查看Firebase项目,它将被列出。然后,您可以从那里创建更多密钥(但据我所知,不会在Firebase控制台中列出)。
基本上,您可以通过Google开发者控制台更好地管理密钥。
希望这有所帮助!

0

你应该避免为同一个项目分发API密钥。如果发现使用这些API密钥的任何人滥用它,整个项目将会被限制,影响该项目的所有密钥。

如果你确实想让多个开发者向你的应用程序发送通知,那么每个开发者都应创建一个Firebase项目,然后让客户端与每个发送者ID进行注册。你仍然可以为每个开发者轮换API密钥,或者让客户端删除不再希望接收来自某个开发者的消息的令牌。这样,一个开发者的滥用行为不会对整个项目产生负面影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接