如何源控制Firestore数据库安全规则并自动更新它们

时间:2017-12-27 18:54:56

标签: android firebase gradle firebase-security google-cloud-firestore

将Firestore安全规则保存在代码的源代码控制(Github)中是否明智?

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

1 个答案:

答案 0 :(得分:2)

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