gpt4 book ai didi

firebase - 在 firestore [通配符] 中为点注释动态路径创建索引?

转载 作者:行者123 更新时间:2023-12-04 15:55:39 24 4
gpt4 key购买 nike

我的收藏创​​建如下:

-products
-productID
-category [object]
catitem1 - boolean
catitem2 - boolean

现在我写了一个查询如下

this.afs.collection<Product>('products', ref =>
ref
.where(`category.${categoryName}`, '==', true)
.limit(limit)
);

此查询工作正常,但当我将 orderBy 添加到上述查询时,我被要求为查询创建一个 index

this.afs.collection<Product>('products', ref =>
ref
.where(`category.${categoryName}`, '==', true)
.orderBy('createdDate','desc')
.limit(limit)
);

由于 categoryName 可以创建并可以随时更改,我应该为每个 categoryName 添加索引,这将是数百个。

有什么方法可以为 category.categoryName 创建通配符索引?

我尝试使用 category.* 但这是 Not Acceptable 。希望能在这里找到一些帮助。

最佳答案

自从提出这个问题后,Firestore 实现了各种运算符来帮助解决 querying for array membership 问题。 .在撰写本文时可用的运算符是:array-containsarray-contains-anyinnot-in.

不是将 category 存储为一个 object,每个 categoryName 都有一个 Boolean 属性,你可以有一个categories 数组,包含String 名称(或者,如果您想节省空间,Int id)产品所属的类别。

查询可以像这样工作,只需要一个索引:

this.afs.collection<Product>('products', ref =>
ref
.where('categories', 'array-contains', categoryName)
.orderBy('createdDate','desc')
.limit(limit)
);

关于firebase - 在 firestore [通配符] 中为点注释动态路径创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51800860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com