我正在做一个简单的查询,并且Firestore定期不返回任何内容。没有错误,没有结果,什么都没有。
Firestore.firestore().collection("groupChats")
.order(by: kUpdatedAt, descending: true)
.whereField("memberIds", arrayContains: currentUserId)
.limit(to: 15).getDocuments { [weak self] snapshot, error in
// nothing inside here ever hits
}
我不太确定该如何进行或调试,因为这似乎在Firestore中。用户具有互联网连接。拉动刷新并再次调用该查询将返回相同的看似无操作的结果。
有什么想法吗?谢谢!
答案 0 :(得分:0)
该问题最终在默认情况下处于打开状态,并且由于开发和迁移,我在设备上拥有大量缓存。在Firestore()
初始化过程中,关闭离线缓存可以大大帮助这一点,并使我的应用程序再次可用。
答案 1 :(得分:0)
您应该使用以下代码
Firestore.firestore().collection("groupChats")
.order(by: kUpdatedAt, descending: true)
.whereField("memberIds", arrayContains: currentUserId)
.limit(to: 15).getDocuments { (snapshot, error) in
if error != nil{
print("Error getting documents: \(error)")
} else {
for document in (snapshot?.documents)! {
print("\(document.documentID) => \(document.data())")
}
}
答案 2 :(得分:0)
我遇到了同样的问题,对我来说,查询字段是以保留字命名的。 val type:String=""
我将保留更改为非保留,查询也像魔术一样工作。
我的代码就像
val query=FirebaseFirestore.getInstance()
.collection("Organizations")
.orderBy("name")
.whereEqualTo("type",orgType)
所以我将其更改为更有意义的内容,如下所示。
val query=FirebaseFirestore.getInstance()
.collection("Organizations")
.orderBy("name")
.whereEqualTo("organizationtype",orgType)