何时引发FirebaseFirestoreException?

时间:2019-08-22 08:28:13

标签: firebase google-cloud-firestore

我想知道何时FirebaseFirestoreException被抛出?我阅读了文档here,但看不到任何解释。我已经运行过som测试,例如断开Internet连接,但是评估:

if (e != null)

从来都不是真的。我认为断开互联网连接将使侦听器停止工作,并且不会触发EventFirebaseFirestoreException,因此何时抛出?我在哪里可以读到这些代码?

final DocumentReference docRef = db.collection("cities").document("SF");
docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
    @Override
    public void onEvent(@Nullable DocumentSnapshot snapshot,
                        @Nullable FirebaseFirestoreException e) {
        if (e != null) {
            Log.w(TAG, "Listen failed.", e);
            return;
        }

        if (snapshot != null && snapshot.exists()) {
            Log.d(TAG, "Current data: " + snapshot.getData());
        } else {
            Log.d(TAG, "Current data: null");
        }
    }
});

1 个答案:

答案 0 :(得分:0)

  

我已经进行了诸如断开Internet连接之类的som测试,但是评估从来都不是真的。

当您未连接到Internet时,不会出现异常,因为Cloud Firestore希望脱机工作。在未连接到Firebase服务器的情况下,向Firestore数据库写入数据或从中读取数据,无论如何都不认为是错误。这是默认行为。例如,当您执行的查询满足服务器上设置的规则时,将引发异常。 Firestore Security Rules将始终拒绝任何不允许的查询,因此将引发异常。您将收到的错误消息如下:

  

PERMISSION_DENIED:缺少权限或权限不足。