限制Firebase API密钥

Spa*_*323 11 android firebase google-developers-console

我一直在玩Firebase,在阅读完文档(以及其他SO问题)之后,我仍然对某些API密钥感到困惑.我正在使用Firebase for Analytics,Crashlytics和Performance.但它也与Google Play和AdMob相关联.

当我第一次设置它时,在开发者控制台中创建了3个API密钥.

  1. 浏览器密钥(由Google服务自动创建)
  2. Android密钥(由Google服务自动创建)
  3. 服务器密钥(由Google服务自动创建)

我尝试阅读文档,找到它描述如何使用这些键,但我无法找到它.通过查看Firebase应用程序,它看起来像是Android Key用作的Web API Key,并且Server Key用作Cloud Message Legacy Server Key(尽管我不使用云消息传递).我不确定Firebase是如何使用的Browser Key.

我正在尝试做的是尽可能地限制这些密钥,以防止任何恶意使用它们.

我添加了以下API限制

  1. Android密钥
    • Firebase服务API
  2. 服务器密钥
    • Firebase云消息传递API
  3. 浏览器密钥
    • Firebase服务API

我不完全确定这些限制是否适用于我使用它们的内容,但它至少对我而言是有用Android KeyServer Key,至少就我所知.但是,Browser Key由于Firebase Browser Key在重新部署应用程序时正在创建新的限制,因此这些限制似乎不起作用.

总结一下我的问题,我可以看到Firebase正在为我自动创建API密钥,但我找不到任何文档来讨论这些密钥如何用于我正在使用的Firebase的基本功能.我也不完全确定如何限制这些键,尤其是Browser Key.

小智 6

您可以通过以下应用程序限制进行限制:HTTP 引荐来源网址、IP 地址、Android 应用程序、iOS 应用程序。这些是唯一有效的

我发现最好不要限制自动生成的 Firebase API 密钥上的 API 调用。我已尝试对 Firebase Web API 密钥进行 API 限制,但这些更改会破坏其他组件。

我尝试将 API 调用限制为仅与 Firebase 或身份验证有关的调用。进行这些更改后,使用 Firebase 使用密码登录停止工作,并在 Javascript 控制台中显示以下错误消息:

https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=THE 1NOW1RESTRICTED1API1KEY
{
  "error": {
    "code": 400,
    "message": "EMAIL_NOT_FOUND",
    "errors": [
      {
        "message": "EMAIL_NOT_FOUND",
        "domain": "global",
        "reason": "invalid"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)