如何对 Firestore 数据库安全规则进行源代码控制并自动更新

问题描述 投票:0回答:2
将 Firestore 安全规则保存在代码的源代码管理(Github)中是否谨慎?

此外,首次克隆存储库和安装应用程序时(出于开源项目目的)自动部署安全规则的最佳方法是什么?就我而言,它是在 Android Studio 中使用 Gradle 构建的 Android 应用程序。

android firebase gradle firebase-security google-cloud-firestore
2个回答
16
投票
Firebase 安全规则可能被认为比源代码存储库中找到的其他源代码稍微敏感一些。话虽这么说,可以将它们与应用程序的其余源代码一起存储。如果您选择将应用程序的源代码托管在公共存储库中,那么您已经可以轻松地公开应用程序的内部工作原理。

可以提出这样的论点:公开 Firebase 资源的安全方式可以帮助不良行为者发现漏洞并利用您的应用程序,但应用程序源代码的其余部分也可以这样说。

虽然将安全规则存储在源存储库(即版本控制)中具有优势,但您可能需要考虑在 Firebase 控制台中配置规则。如果您打算设置持续集成和部署流程,这将不起作用。

您还可以考虑将安全规则存储在单独的私有存储库中,并利用 Firebase CLI 从该私有存储库自动部署,例如:

cd ../my-project-security-rules firebase --project my-project deploy --only firestore:rules

您的

my-project-security-rules

 存储库需要包含 firebase.json 配置文件的精简版本,例如:

{ "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" } }

请参阅

https://firebase.google.com/docs/cli/#partial_deploys 了解有关通过 Firebase CLI 进行部分部署的更多信息


0
投票
对于那些多年后发现这个问题并且仍然想知道各种 Firebase 规则是否应该首先纳入版本控制的人(正如我想知道的那样),此文档

https://firebase.google.com/docs/rules/管理部署#use_the 状态:

使用 CLI 允许您将规则与应用程序代码一起置于版本控制之下,并将规则部署为现有部署过程的一部分。

基本上意味着可以将规则保留在版本控制中。我计划将它们添加到我的存储库中(我目前忽略了这些文件)并使用 Firebase CLI 将它们部署到我的部署管道中。

© www.soinside.com 2019 - 2024. All rights reserved.