我正在尝试实现与ref.whereField("userID", existsIn: friendArray)
类似的功能,这将使我能够从一组用户中过滤出朋友。我知道不支持这种查询。诸如db.collection("users").getDocuments() { //iterate documents }
之类的客户端解决方案可能对数据不太友好,是否有服务器端解决方案?
答案 0 :(得分:0)
尽管您没有显示文档结构,但我想您目前有类似的东西:
{
"user_name": "Jon Doe",
"friendArray": [{
0: "userID",
1: "userID2",
2: "userID3"
}]
}
但是Firestore Docs建议将数据结构为:
{
"name": "Jon Doe",
"friendArray": {
"userID": true,
"userID2": true,
"userID3": true
}
}
通过这种方式,您可以使用以下方式检索在其朋友列表中拥有userID
的所有用户:
db.collection("users")
.whereField("friendArray.userID", isEqualTo: true)
.getDocuments() { (querySnapshot, err) in
// ...
}