将Firestore安全规则保存在代码的源代码控制(
Github)中是否谨慎?
此外,在第一次克隆存储库和安装应用程序时,自动部署安全规则的最佳方法是什么(对于开源项目)?在我的例子中,它是在Android Studio中使用Gradle构建的Android应用程序.
最佳答案 可以认为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"
}
}
有关通过Firebase CLI进行部分部署的详细信息,请参阅https://firebase.google.com/docs/cli/#partial_deploys