我想知道何时FirebaseFirestoreException
被抛出?我阅读了文档here,但看不到任何解释。我已经运行过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");
}
}
});
答案 0 :(得分:0)
我已经进行了诸如断开Internet连接之类的som测试,但是评估从来都不是真的。
当您未连接到Internet时,不会出现否异常,因为Cloud Firestore希望脱机工作。在未连接到Firebase服务器的情况下,向Firestore数据库写入数据或从中读取数据,无论如何都不认为是错误。这是默认行为。例如,当您执行的查询不满足服务器上设置的规则时,将引发异常。 Firestore Security Rules将始终拒绝任何不允许的查询,因此将引发异常。您将收到的错误消息如下:
PERMISSION_DENIED:缺少权限或权限不足。