2016-09-25 38 views
0

Noob here。Firebase無法識別DatabaseReference存在

嘗試查看數據庫中是否存在DatabaseReference。下面是我如何做到這一點:

String key = "ABCDE"; 
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("itemIds").child(key); 
ref.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snap) { 
     if (!snap.exists()) 
      tellUserThatItDoesntExists(); 
     else 
      tellUserThatItExists(); 
    } 

    ..... 
} 

但是代碼總是產生於參考即使節點root/itemIds/ABCDE這是BTW,我經歷了火力地堡控制檯加)在數據庫中確實存在不存在。

所有的數據都是公開的,所以我沒有理由不被允許讀取數據。

編輯:這是數據庫的可視化樹的截圖。 Screenshot of the visual tree

另一個編輯:這裏(除meh節點)都用火力地堡控制檯保存一些沒有擺弄周圍,顯然,根據我的觀察,火力地堡似乎無法讀取由添加的數據安慰。我得出了這個結論,因爲我正在編寫我正在編寫的程序,並且試圖檢查數據庫是否存在並且工作正常。

有關如何解決此問題的任何想法?

+0

請分享您的Firebase數據樹或您的Firebase數據的json快照嗎? –

+0

我問上述問題的原因是我無法理解** root **是否是一個名爲root的節點,或者您只是將根引用稱爲root。如果它是一個節點,那麼你需要將它添加到.child(「itemIds」) –

+0

請參閱我的編輯。 –

回答

2

好,所以這個錯誤的原因很明顯,從你的快照。

不要用 - 「」引號保存數據! Firebase讀取從控制檯添加的數據就好了。但是,如果你是加引號,那麼你必須參考 - .child(「」itemIds「」)

希望這會有所幫助。刪除引號並且firebase會讀取它。只有密鑰的值可以有引號。檢查meh節點如何格式化。這是正確的方法。

+0

Geez。沒有意識到這一點。我很愚蠢。非常感謝。 –

+1

沒關係。我們都碰巧犯了這樣的錯誤。請考慮提高答案。 –

+0

已經做到了。 :) –