在 Android 上讀取資料時檢測錯誤

你的讀取操作可能無法正常工作的常見原因是你的安全規則拒絕操作,例如因為你未經過身份驗證(預設情況下,資料庫只能由經過身份驗證的使用者訪問)。

你可以在 logcat 輸出中看到這些安全規則違規。但很容易忽視這些。你還可以在自己的程式碼中處理它們並使它們更突出地顯示,這在開發期間尤其有用(因為你的 JSON,規則和程式碼經常更改)。

要檢測 Android 上的失敗讀取,你必須實現 ChildEventListeneronCancelled 方法:

databaseRef.addChildEventListener(new ChildEventListener() {
    public void onChildAdded(DataSnapshot dataSnapshot, String s) { ... }
    public void onChildChanged(DataSnapshot dataSnapshot, String s) { ... }
    public void onChildRemoved(DataSnapshot dataSnapshot) { ... }
    public void onChildMoved(DataSnapshot dataSnapshot, String s) { ... }
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
});

或者如果你有一個 ValueEventListener

databaseRef.addValueEventListener(new ValueEventListener() {
    public void onDataChange(DataSnapshot dataSnapshot, String s) { ... }
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
});

有了這個程式碼,在 Android 上讀取資料時很難忽略安全性錯誤。