Firestore查询返回“由于客户端脱机而无法获取文档”。在Android中

时间:2020-03-31 16:15:25

标签: android firebase google-cloud-firestore

实际上,我正在对Firestore进行多次调用,所有调用都正常工作,但是有一个正在返回Failed to get document because the client is offline.

我的查询非常简单:

fun getUserById(userID: String, onSuccessListener: OnSuccessListener<DocumentSnapshot>, onFailureListener: OnFailureListener) {
        Firebase.firestore
            .collection("users")
            .document(userID)
            .get()
            .addOnSuccessListener(onSuccessListener)
            .addOnFailureListener(onFailureListener)
    }

但是该呼叫返回的是failureCallback。错误日志如我之前所说:Failed to get document because the client is offline.

很奇怪,因为唯一调用正在引发此错误。其他更复杂的设备运行完美。

我检查了文档是否存在于数据库中,并且访问规则未更改。 该应用程序已在Google Play中运行,并且在此版本之前运行正常,因此google service json文件正确。

使用的库:

//Firebase Core
    implementation 'com.google.firebase:firebase-core:17.3.0'
//Firebase Firestore
    implementation 'com.google.firebase:firebase-firestore-ktx:21.4.2'
//Firebase Authentication
    implementation 'com.google.firebase:firebase-auth:19.3.0'
//Firebase push notifications
    implementation 'com.google.firebase:firebase-messaging:20.1.4'

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我要指出的是,有关问题是与Firestore服务器和设备的连接这一事实很明显。

我认为将Firestore的Access data offline功能与Firebase一起使用时可以缓解此问题,我认为这是您的用例。还是您已经在使用它?

我看到该错误是间歇性的,但是正如您所指出的那样,似乎只有“用户”集合失败了,是否有可能该“用户”集合没有存储在手机缓存中而导致提到的错误?