Firebase 如何从Firestore导出安全性和索引规则?
我在Firestore开发数据库上设置了多个不同的索引。现在,我想将它们导出到Firebase 如何从Firestore导出安全性和索引规则?,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我在Firestore开发数据库上设置了多个不同的索引。现在,我想将它们导出到firestore.indexes.json中,这样设置prod环境的过程就更容易了。有没有办法使用Firebase CLI导出这些索引?这同样适用于安全规则,尽管我知道我可以复制粘贴它们。我认为目前还没有从项目中获取Firestore安全规则的API。您可以,它也可以嵌入到自定义节点脚本中,并从CI进程调用。但据我所知,没有API可以从项目中读取规则 这听起来是一个很好的理由。这是可能的 从firebase项目文件夹
firestore.indexes.json
中,这样设置prod环境的过程就更容易了。有没有办法使用Firebase CLI导出这些索引?这同样适用于安全规则,尽管我知道我可以复制粘贴它们。我认为目前还没有从项目中获取Firestore安全规则的API。您可以,它也可以嵌入到自定义节点脚本中,并从CI进程调用。但据我所知,没有API可以从项目中读取规则
这听起来是一个很好的理由。这是可能的
从firebase项目文件夹中的CLIfirebase firestore:index
运行
如果您已经设置了索引并通过CLI登录Firebase,您将获得一个格式化的JSON输出供您复制
例如:
{
"indexes": [
{
"collectionId": "teslaData",
"fields": [
{
"fieldPath": "Model",
"mode": "ASCENDING"
},
{
"fieldPath": "Price",
"mode": "ASCENDING"
}
]
}
]
}
导出的索引可以使用firebase部署-仅firestore:indexes
重新导入。检查以下文档摘录
您还可以使用Firebase CLI部署索引。要开始,请运行
项目目录中的firebase init firestore。在安装过程中
Firebase CLI生成一个JSON文件,其中包含
格式正确。编辑文件以添加更多索引,并使用
firebase部署命令。如果只想部署索引,请添加
唯一的firestore:indexes标志。如果您对索引进行编辑
使用Firebase控制台,确保还更新了本地
索引文件
我正在使用Firebase CLI4.2.1
如果这有帮助,祝你好运:)
编辑:从
9.6.0
开始,它仍在工作。任何集成开发环境都在支持Node.js(Firebase CLI要求)的操作系统上运行。因此,如果您查看Nodes文档,可以看到一些示例,说明如何通过编程(通过JavaScript)操作(复制/粘贴)文件。关于以编程方式部署到Firebase,请参见这是一个伟大的发现@fyllepo!我完全没有想到可以使用firestore:indexes
读取索引。我正在努力让它工作,但这似乎是我的责任。你让它工作了吗?如果是这样,我假设JSON文件只包含索引,而不包含安全规则。对吗?您是否可以更新您的答案以显示JSON包含的内容?@FrankvanPuffelen添加了一个示例,感谢您提供的提示:)这不再有效。结果以不同的格式返回:“索引”:[{“collectionGroup”:“posts”,“queryScope”:“COLLECTION”,“fields”:[{“fieldPath”:“createdBy”,“order”:“升序”},{“fieldPath”:“createdAt”,“order”:“降序”},@TroyMichael我已经有一段时间没有使用Firebase了,您能介绍一下您的Firebase版本吗?我很快就会进行调查。这对我使用Firebase工具(Firebase cli)8.7.0非常有效。