我试图where()
使用array-contains
运算符使用多种方法过滤数据,但是我遇到以下错误:
An error occured: Error: 3 INVALID_ARGUMENT:
A maximum of 1 'ARRAY_CONTAINS' filter is allowed.
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个包含以下文档的集合:
product1
- node_sku ['sku1', 'sku2', 'sku3' ]
product2
- node_sku ['sku4', 'sku5', 'sku6' ]
Run Code Online (Sandbox Code Playgroud)
然后我有我希望在数据库中找到的项目的数组:
const list = ['sku4', 'sku2']
Run Code Online (Sandbox Code Playgroud)
我想搜索sku4
和sku2
,如果发现任何返回对象.
我的问题是array-contains
不允许多次运行.
这是我用来过滤的代码:
const list = ['sku4', 'sku2'];
let database = firestore_db.collection('glasses');
let ref = database;
list.forEach( (val) => {
ref = ref.where('node_sku' , 'array-contains' , val);
});
ref.get()
.then( (snapshot) => glassesRequestComplete(snapshot, req, …
Run Code Online (Sandbox Code Playgroud) 假设我有以下数组:['product','model','version']
我想有一个对象,如:
{
product: {
model: {
version: {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,该阵列是动态的,因此它可以有2,3或更少的项目.如何以最有效的方式实现这一目标?
谢谢