已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
三年前关闭了。
Improve this question
我有一个Firebase项目,它使用Firestore,我经常在Firebase控制台上手动修改安全规则和索引,但我在开发机器上也有本地副本(firestore.rules
和firestore.indexes.json
),当我这样做时,它们会变得不同步。
有没有办法自动同步它们?例如,如果我在控制台中创建了一个索引,那么我如何在我的firestore.indexes.json
中持久化该索引?
到目前为止,我都是手动地将这些更改应用到本地副本,但这显然是一个容易出错的过程,而且我正在努力避免意外地使用过时的索引或规则进行覆盖。
1条答案
按热度按时间k7fdbhmy1#
没有自动机制来处理Firebase控制台中声明的安全规则与使用CLI部署时本地声明的规则之间的冲突。
如果您的本地项目设置为部署Firestore安全规则,则在使用CLI部署时,这些规则将覆盖控制台中的规则。(请参阅此文档项:https://firebase.google.com/docs/rules/manage-deploy#edit_and_update_your_rules)
有两种可能的方法:
1.设置您的本地项目以通过CLI部署Firestore安全规则,并且在部署之前仅在本地修改规则(不是非常灵活)
1.不要在本地定义安全规则,而只能在Firebase控制台中定义。为此,您应该从
firebase.json
文件中删除"rules": "firestore.rules"
行,并从项目中删除firestore.rules
文件。请注意,“使用CLI允许您将规则与应用程序代码一起保持在版本控制之下”。
使用索引时,情况稍有不同:如果两个版本存在差异(本地
firestore.indexes.json
文件和控制台索引),通过CLI部署时会在终端提示:通过运行
firebase firestore:indexes
,索引将在终端中打印,您将能够复制它们,以便手动更新firestore.indexes.json
文件。