Firestore:查询与数组比较

时间:2018-07-20 19:16:12

标签: swift firebase google-cloud-firestore

我正在尝试实现与ref.whereField("userID", existsIn: friendArray)类似的功能,这将使我能够从一组用户中过滤出朋友。我知道不支持这种查询。诸如db.collection("users").getDocuments() { //iterate documents }之类的客户端解决方案可能对数据不太友好,是否有服务器端解决方案?

1 个答案:

答案 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

        // ...

}