【问题标题】:Get documents in Firebase where field is X in Swift 4在 Swift 4 中获取字段为 X 的 Firebase 文档
【发布时间】:2018-10-05 18:37:47
【问题描述】:

我希望在 Swift 中从我的集合中检索所有文档,其中字段“groupId”==“31bc2501-7164-4f22-7b28-9f9005acbcf6”(一个 guid)

如果我使用 firebase 文档 ID,则可以:

CollectionReference reference = db.collection("chats/XIiOrtRiYmLtzz1tzG2u")

但我想改为通过字段查询。

我在 Swift 中看到有这样的东西:

var query = db.collection("chats").whereField("groupId", isEqualTo: "31bc2501-7164-4f22-7b28-9f9005acbcf6")

但它返回一个查询对象,我不知道如何“弹出”它来执行查询并返回给我一个集合(大多数在线示例似乎使用不同且过时的语法来执行此操作,并且不要使用 whereField)

有没有办法像我在第一个示例中那样内联查询集合,但使用主键以外的其他字段? 也许我查询的集合不正确?

谢谢,感谢您的宝贵时间!

【问题讨论】:

  • 嘿,谢谢,很惊讶我错过了这个(我确实搜索过,我发誓)! :) 所以关于这一点,我看到这返回 void (它只是给你所有文档)但是有没有办法将它存储为参考,所以我可以通过 addSnapshotListener 使用快照侦听器?

标签: swift firebase google-cloud-firestore


【解决方案1】:

来自Firebase documentation on getting multiple documents through a query

db.collection("chats").whereField("groupId", isEqualTo: "31bc2501-7164-4f22-7b28-9f9005acbcf6")
  .getDocuments() { (querySnapshot, err) in
    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        for document in querySnapshot!.documents {
            print("\(document.documentID) => \(document.data())")
        }
    }
}

【讨论】:

  • 谢谢弗兰克,不胜感激。不好意思我错过了。
猜你喜欢
  • 2021-07-10
  • 2021-07-20
  • 2020-10-13
  • 1970-01-01
  • 2020-09-20
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多