我一直在玩Firebase,在阅读了文档(以及其他SO问题)之后,我仍然对某些API密钥感到困惑。我正在使用Firebase进行分析,崩溃和性能分析。而且还可以将其链接到Google Play和AdMob。
当我第一次设置它时,在开发者控制台中创建了3个API密钥。
我试图通读文档,以找到描述如何使用这些键的地方,但是我找不到它。通过环视Firebase应用程序,看起来Android Key
被用作Web API Key
,而Server Key
被用作Cloud Message Legacy Server Key
(尽管我不使用云消息传递)。我不确定Firebase如何使用Browser Key
。
我要尝试的是尽可能限制这些密钥,以防止对其进行任何恶意使用。
我添加了以下API限制
我不确定这些限制是否对我使用它们的目的正确,但是就我所知,它对Android Key
和Server Key
有效。但是,Browser Key
限制似乎不起作用,因为当我重新部署应用程序时,Firebase正在创建新的Browser Key
。
总结一下我的问题,我可以看到Firebase正在为我自动创建API密钥,但是我找不到任何有关这些密钥如何用于我正在使用的Firebase基本功能的文档。我也不完全确定如何限制这些键,尤其是Browser Key
。
答案 0 :(得分:0)
您可以通过以下方式限制应用程序限制:HTTP引荐来源网址,IP地址,Android应用程序,iOS应用程序。这些是唯一似乎有效的方法
我发现最好不要限制对自动生成的Firebase API密钥的API调用。我已经尝试过Firebase Web API密钥的API限制,但是更改破坏了其他组件。
我尝试将API调用限制为仅与Firebase或Authentication有关的调用。进行这些更改后,使用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"
}
]
}
}
答案 1 :(得分:0)
通过提供程序包名称和SHA1指纹,可以将Android Key锁定为“ Android Apps”。
这似乎会通过密钥来限制已签名的Android代码的使用?
我启用了此限制,没有任何不良副作用。