Firebase 如何从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开发数据库上设置了多个不同的索引。现在,我想将它们导出到
firestore.indexes.json
中,这样设置prod环境的过程就更容易了。有没有办法使用Firebase CLI导出这些索引?这同样适用于安全规则,尽管我知道我可以复制粘贴它们。

我认为目前还没有从项目中获取Firestore安全规则的API。您可以,它也可以嵌入到自定义节点脚本中,并从CI进程调用。但据我所知,没有API可以从项目中读取规则

这听起来是一个很好的理由。

这是可能的

从firebase项目文件夹中的CLI
firebase 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 CLI
4.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非常有效。