Java 使用Firestore查询是否存在获取错误的潜在错误

Java 使用Firestore查询是否存在获取错误的潜在错误,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,因此,这里有两种情况下没有网络: 如果不使用任何查询,我将得到一个错误: collectionReference.document().get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() { @Override public void onComplete(@NonNull Task<DocumentSnapshot> task) { if (task

因此,这里有两种情况下没有网络:

如果不使用任何查询,我将得到一个错误:

collectionReference.document().get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            Log.d(TAG, "onComplete: success");
        } else {
            Log.d(TAG, "onComplete: " + task.getException());
        }
    }
});
现在,在使用查询时,我没有发现任何错误,例如:

collectionReference.limit(1).get().addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        Log.d(TAG, "onFailure: " + e.getMessage());
    }
}).addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
    @Override
    public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
        Log.d(TAG, "onSuccess: ");
    }
});
collectionReference.addSnapshotListener((queryDocumentSnapshots, e) -> {
    if (e != null) {
        Log.d(TAG, "onEvent: error"  + e);
        return;
    }

    if (queryDocumentSnapshots != null) {
        Log.d(TAG, "onEvent: success");
    } else {
        Log.d(TAG, "onEvent: no result");
    }
});
或使用
文档

collectionReference.document("path").addSnapshotListener((documentSnapshot, e) -> {
    if (e != null) {
        Log.d(TAG, "onEvent: error"  + e);
        return;
    }

    if (documentSnapshot != null) {
        Log.d(TAG, "onEvent: success");
    } else {
        Log.d(TAG, "onEvent: no result");
    }
});
另一个返回
success

collectionReference.limit(1).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            Log.d(TAG, "onComplete: success");
        } else {
            Log.d(TAG, "onComplete: error " + task.getException());
        }
    }
});

即使失败,上述所有示例也会返回
success
。那么这是一个bug还是假设它是这样工作的?

你能发布错误吗?请检查并回复@。刚刚编辑了这篇文章。但是,对于最上面的代码段,即未经查询,我得到的错误是
无法获取文档,因为客户端处于脱机状态
,但对于其他代码段,所有日志都记录了
成功
@Rajarshi您检查过我在那篇文章中的答案了吗?它回答了你的问题吗?@AlexMamo我正在对你在提供的链接上所说的内容进行测试,不幸地得到了成功和错误消息,这使得调试变得更加困难。为什么没有任何方法获得网络状态?顺便问一下,
task.isComplete()
用于什么?
collectionReference.limit(1).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            Log.d(TAG, "onComplete: success");
        } else {
            Log.d(TAG, "onComplete: error " + task.getException());
        }
    }
});
implementation 'com.google.firebase:firebase-firestore:17.1.0'