检查Firestore数据是否存在数组中的每个元素

时间:2018-02-25 12:02:04

标签: typescript firebase google-cloud-firestore angular5 angularfire2

我正在尝试查询具有以下结构的单个节点:

//object in firestore    
fruit = {"Orange","Apple","Pineapple","Banana","Grapes"}

现在我的逻辑设置是我有一个数组,假设我们在这个数组中有两个项目

//object in my code
fruit:any = ["Pineapple","Grapes"];

我想检查数组中的项是否存在于数据库中的水果下,我执行以下查询

    checkFruits(uid,fruit):Observable<any>{
        //console.log(fruit);
        return this.afs.collection('profiles').doc(uid).collection(`fruit`, ref => ref.
        //what to do here to make it check for each item in fruit array ??
        where(`fruit.${fruit}`, '==', true)).valueChanges(); 
         }

我无法完全理解如何在水果对象下检查数组中每个元素的存在。

1 个答案:

答案 0 :(得分:2)

我设法这样做了:

return this.afs
      .collection("profiles")
      .doc(uid)
      .collection(`experiences`, ref => {
        let query: any = ref;
        //console.log(fruit);

        for (const iterator in fruit) {
          console.log(iterator);

          query = query.where(`fruit.${iterator}`, "==", true);
        }
        return query;
      })
      .valueChanges();

我从HadyMohamed

获得了帮助