首页 > 解决方案 > FirebaseFirestoreException 何时抛出?

问题描述

我想知道什么时候FirebaseFirestoreException抛出?我在这里阅读了文档,但看不到任何解释。我已经运行了 som 测试,例如断开 Internet,但评估:

if (e != null)

从来都不是真的。我认为断开互联网会使听众停止工作并且不会触发它Event什么FirebaseFirestoreException时候被抛出?我在哪里可以读到这个,代码?

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

标签: firebasegoogle-cloud-firestore

解决方案


我已经运行了 som 测试,比如断开互联网连接,但评估从来都不是真的。

当您未连接到互联网时,不会抛出异常,因为 Cloud Firestore 设计为离线工作。在您未连接到 Firebase 服务器的情况下,向 Firestore 数据库写入数据或从中读取数据无论如何都不会被视为错误。这是默认行为。例如,当您执行不满足服务器上设置的规则的查询时,将引发异常Firestore 安全规则将始终拒绝任何不允许的查询,因此将引发异常。您将收到的错误消息如下所示:

PERMISSION_DENIED:权限缺失或不足。


推荐阅读