Google cloud firestore 综合指数的Firestore置换爆炸

Google cloud firestore 综合指数的Firestore置换爆炸,google-cloud-firestore,Google Cloud Firestore,我被困在firestore的综合指数中。我在一个用户下面有几个字段,它们像a(字符串)、B(字符串)、C(字符串)、D(数组)、E(数组)、F(数组)、G(数组)。用户可以通过这些字段的不同组合进行搜索和查询。例如,“A=='Male',B=='2020',它告诉我创建复合索引,在我创建了类似“A=='Male',B=='2020',C=='Ontario'这样的查询之后,仍然需要一个新的复合索引 我想知道的是,我必须创建所有的组合指数排列吗 数组字段不止两个,但SDK只允许一个“array c

我被困在firestore的综合指数中。我在一个用户下面有几个字段,它们像a(字符串)、B(字符串)、C(字符串)、D(数组)、E(数组)、F(数组)、G(数组)。用户可以通过这些字段的不同组合进行搜索和查询。例如,“A=='Male',B=='2020',它告诉我创建复合索引,在我创建了类似“A=='Male',B=='2020',C=='Ontario'这样的查询之后,仍然需要一个新的复合索引

  • 我想知道的是,我必须创建所有的组合指数排列吗
  • 数组字段不止两个,但SDK只允许一个“array contains”子句。对此我能做些什么?为此,我尝试将数组[element1,element2]拆分为“element1:true,element2:true”这样的结构,它可以通过“==”子句查询。但问题是数组是动态的,每次我添加一个”==子句,SDK告诉我需要创建一个新的复合索引
    有人对此有什么想法吗

    没有能够自动创建所有所需组合的工具。但是,建议您可以使用部署使用其JSON配置定义的索引。此配置文件没有文档记录,因此您必须根据手动创建的索引对其进行反向工程。下面是一个此类索引配置的示例。您可以手动创建一个索引,然后运行
    firebase init
    ,选择Firestore,它将把索引转储到它的JSON配置中,您可以编辑并重新部署它。从今天起,您必须在新文件夹中运行
    firebase init
    ,才能从服务器获取新索引


    一旦知道如何部署这样的索引,就可以编写代码在JSON配置中创建所有索引组合。这并不漂亮,但它是可行的。

    没有能够自动创建所有所需组合的工具。但是,建议您可以使用部署使用其JSON配置定义的索引。此配置文件没有文档记录,因此您必须根据手动创建的索引对其进行反向工程。下面是一个此类索引配置的示例。您可以手动创建一个索引,然后运行
    firebase init
    ,选择Firestore,它将把索引转储到它的JSON配置中,您可以编辑并重新部署它。从今天起,您必须在新文件夹中运行
    firebase init
    ,才能从服务器获取新索引


    一旦知道如何部署这样的索引,就可以编写代码在JSON配置中创建所有索引组合。虽然不漂亮,但还是可行的。

    谢谢,我会试试的。我刚刚更新了我的问题,您能看一下吗?仅供参考,更改问题的性质是违反堆栈溢出约定的,特别是在已经回答了问题之后。它使答案无效,并可能使其他可能看到它的人感到困惑。我建议恢复更改,并将您的新问题作为单独的问题发布。谢谢,我会尝试。我刚刚更新了我的问题,您能看一下吗?仅供参考,更改问题的性质是违反堆栈溢出约定的,特别是在已经回答了问题之后。它使答案无效,并可能使其他可能看到它的人感到困惑。我建议恢复更改,并将您的新问题作为单独的问题发布。