相关疑难解决方法(0)

Firestore:多个'array-contains'

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

我想搜索sku4sku2,如果发现任何返回对象.

我的问题是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)

javascript firebase google-cloud-firestore

6
推荐指数
3
解决办法
4394
查看次数