我刚刚注册了Firebase,然后创建了一个新项目。Firebase要求我提供我的应用程序域和SHA1调试密钥。我输入了这些详细信息,它生成了一个google-services.json文件供我添加到我的应用模块的根目录中。
我的问题是,是否应将此.json文件添加到公共(开源)存储库中。它应该是秘密的吗,例如API密钥?
Answers:
一个google-services.json
文件,从火力地堡文档:
Firebase通过一个配置文件管理所有API设置和凭据。
该文件google-services.json
在Android和GoogleService-Info.plist
iOS上命名。
将其添加到a.gitignore
而不将其包含在公共仓库中似乎很有意义。
在第26期中对此进行了讨论,其中google-services.json
包含了更多详细信息。
像一个项目googlesamples/google-services
确实有它在它.gitignore
的实例。
虽然,作为评论的stepheaw,这个线程做提
对于库或开放源代码示例,我们不包括JSON文件,因为其目的是用户插入自己的代码,以将代码指向自己的后端。
这就是为什么您在GitHub上大多数Firebase存储库中看不到JSON文件的原因。
如果“数据库URL,Android API密钥和存储桶”不是您的秘密,则可以考虑将文件添加到存储库中。
如“ google-services.json对黑客安全吗? ”中所述,这并不是那么简单。
他在那篇文章中说:
JSON文件不包含任何超敏感信息(例如服务器API密钥)
但
google-services.json
确实有一个名为的条目api_key
。
这是与“server api key
”不同的api密钥吗?
威利查默斯三世(Willie Chalmers III)指出“ google-services.json对黑客安全吗? ”,并补充说:
是的,该API密钥不是永远不应该公开的服务器API密钥,因此如果您
google-services.json
的其他人可以看到您的密钥,那就很好。无论如何,您仍应限制如何在Google Cloud控制台中使用客户端API密钥。
google-services.json
确实有一个名为的条目api_key
。那是与“服务器api密钥”不同的api密钥吗?
通过此讨论,您似乎可以将其添加到公共仓库中。无论如何,其内容最终都将保存在APK中,并且可能很容易提取。
google-services.json
应该在公共开源回购中使用源代码控制。在绝大多数情况下,答案肯定是“不” -除非回购所有者希望默认情况下整个世界都使用其Google帐户API配额。@VonC的答案不变。