2016-09-25 9 views
0

Noobここにあります。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は(ところで、私はFirebaseコンソールから追加された)データベースに存在しないにもかかわらず、存在しない参照に結果:ここで私はそれを行う方法です。

すべてのデータは公開ですので、データを読み取ることを許可されない理由はありません。

:データベースのビジュアルツリーのスクリーンショットです。 Screenshot of the visual tree

別の編集:ここ(mehノードを除く)すべてがFirebaseコンソールを使用して保存して周りと明らかにいじるいくつかは、私の観察に基づいて、Firebaseがで追加されたデータを読み取るように見えることはできませんでしたコンソール。私はこの結論を思いつきました。私が作業しているプログラムをデータベースに書き込んで、それが存在し、うまく動作しているかどうかをチェックしようとしたからです。

どのようにこの問題を解決するためのアイデアですか?

+0

firebaseデータツリーのスナップショットを共有できますかfirebaseデータのjsonを共有できますか? –

+0

私が上記を求めたのは、** root **がrootという名前のノードであるのか、rootとして参照しているのかを理解できないからです。それがノードの場合は、.child( "itemIds")の前に追加する必要があります。 –

+0

私の編集をご覧ください。 –

答えて

2

だから、このエラーの理由はスナップショットから明らかです。

引用符でデータを保存しないでください! Firebaseはコンソールから追加されたデータを読み込みます。しかし、引用符を追加する場合は、.child( "" itemIds "")を参照する必要があります。

希望します。引用符を削除すると、firebaseがそれを読むでしょう。 keyの値だけが引用符を持つことができます。 mehノードの形式を確認してください。それが正しい方法です。

+0

そう。それを実現しなかった。私はダムです。どうもありがとうございます。 –

+1

大丈夫です。私たちはすべてこのような誤りを犯します。答えをアップアップすることも検討してください。 –

+0

既にしました。 :) –

関連する問題