繁体   English   中英

为什么 Firestore 有时不返回任何东西,没有错误,什么都没有?

[英]Why does Firestore sometimes not return anything, no error, nothing?

我正在做一个简单的查询,但 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 内部。 用户具有互联网连接。 拉动刷新并再次调用该查询返回相同的看似无操作的结果。

知道这里发生了什么吗? 谢谢!

问题最终是缓存默认打开,我在设备上有一个来自开发和迁移的大量缓存。 作为Firestore()初始化的一部分关闭离线缓存对此有很大帮助,并使我的应用程序再次可用。

你应该使用下面的代码

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())")
            }
        }

我遇到了同样的问题,对我来说,查询字段是以保留字命名的。 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM