代码之家  ›  专栏  ›  技术社区  ›  uksz

如何从Firestore导出安全性和索引规则?

  •  1
  • uksz  · 技术社区  · 6 年前

    我在Firestore开发数据库上设置了多个不同的索引。现在,我想把它们输出到 firestore.indexes.json 这样建立prod环境的过程就更容易了。有没有办法使用Firebase CLI导出这些索引?这同样适用于安全规则,尽管我知道我可以复制粘贴它们。

    3 回复  |  直到 6 年前
        1
  •  101
  •   fyllepo    4 年前

    这是可能的!

    从CLI运行 firebase firestore:indexes 在firebase项目文件夹中。

    例子:

    {
      "indexes": [
        {
          "collectionId": "teslaData",
          "fields": [
            {
              "fieldPath": "Model",
              "mode": "ASCENDING"
            },
            {
              "fieldPath": "Price",
              "mode": "ASCENDING"
            }
          ]
        }
      ]
    }
    

    导出的索引可以使用 firebase deploy --only firestore:indexes

    https://firebase.google.com/docs/firestore/query-data/indexing

    您还可以使用Firebase CLI部署索引。要开始,请运行 项目目录中的firebase init firestore。在安装过程中 格式正确。编辑文件以添加更多索引,并使用 firebase部署命令。如果只想部署索引,请添加 唯一的firestore:indexes flag. 如果对索引进行编辑 使用Firebase控制台,确保还更新了本地

    我正在使用Firebase CLI 4.2.1 如果有帮助,祝你好运:)

    编辑:截至目前仍在工作 9.6.0 .

        2
  •  1
  •   Frank van Puffelen    6 年前

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

    这听起来是一个很好的理由 file a feature request

        3
  •  -14
  •   Ronnie Smith    6 年前

    任何集成开发环境都运行在支持Node.js的操作系统上(这是Firebase CLI所必需的)。所以,如果你看节点 Filesystem 文档中,有一些示例说明如何通过编程(通过JavaScript)操作(复制/粘贴)文件。至于以编程方式部署到Firebase,请参阅 child_process.spawn

    推荐文章