如何为对象数组编写 firestore 查询过滤器?

How write firestore query filter for array of objects?

我正在 React Native 中编写一个查询,通过按好友名称过滤好友,从 firestore 获取数据...比如获取所有用户,其中 friendName 是 XYZ

[
{User: 'Johan', friends:[{friendName: 'ABC', age:20}, {friendName: 'DEF', age:30},{friendName: 'XYZ', age:25}]}, 

{User: 'Johnson', friends:[{friendName: 'ABC', age:20}, {friendName: 'XYZ', age:25}]},

{User: 'Symonds', friends:[{friendName: 'DEF', age:30},{friendName: 'XYZ', age:25}]}
]

我正在尝试使用这样的代码,但无法正常工作。正如我需要提到的那样,要使用 friendName 进行过滤,但无法找到如何在查询中编写它。

usersRef
    .doc(userId)
    .collection("Users")
    .where('friends', 'array-contains','ABC')
    .get();

据我所知,您不能查询对象内部的字段。我的方法是查询用户的 ID,然后迭代结果数组。

//First make a query 
let resultsArray=[]
usersRef.doc(userId).collection("Users").get().then((docs)=>{
 this.resultsArray.push(docs)
})

//after query is done, iterate results
this.resultsArray.foreach((item)=>{
  item.data().friends.foreach((friend)=>{
    if(friend.friendName === 'ABC'){
      //yes, your friend name is ABC, do whatever you need.
    }
 )
})