我试图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)