2016-10-04 13 views
3

Firebaseデータベースに40,000を超えるノードがあります。しかし、自分のAndroidコードから鍵を読み込もうとしているときは、onDataChangeメソッドが呼び出されません。Android Firebase onDataChangeは呼び出されていませんか?

MyCode:

Firebase firebase = new Firebase(my url); 
      firebase.addValueEventListener(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 

        Log.d(TAG, "onDataChange : " + dataSnapshot); 

        if (dataSnapshot.getValue() != null) { 

         Map map = (Map) dataSnapshot.getValue(); 

         Iterator accountIterator = map.entrySet().iterator(); 
         while (accountIterator.hasNext()) { 

          Map.Entry accountPair = (Map.Entry) accountIterator.next(); 

          Log.d(TAG, "accountPair : Key : " + accountPair.getKey() + " , Value : " + accountPair.getValue()); 
         } 

        } 
       } 

       @Override 
       public void onCancelled(FirebaseError firebaseError) { 
        Log.d(TAG, "onCancelled : " + firebaseError); 
       } 
      }); 

I want to retrieve Student node details

私に知らせてください。私はコード内で問題を見つけることができません。私にいくつかの解決策を提案してください。

+0

https://firebase.google.com/docs/database/android/retrieve-data#value_events https://github.com/firebase/quickstart-android/blob/master/database/app/src/ –

+0

**データベースの参照が間違っているようです**さらに、valueEventListenerは参照キーの値が変更されたときに呼び出されます。しかし、私はそのような参考文献は見ません。それが単なるエラーであれば、その部分を更新してください。 –

+0

@NishantDubey参照が完全ではありません。参照URLをチェックアウトしました。ブラウザで正常に動作していますので、コードの何が間違っていますか?助けてください – MyQuestion

答えて

2

まず、データベースから読み取るための正しいアクセス権があることを確認します。 https://console.firebase.google.com/project/[your_database_url]/database/rulesに移動して確認します。 PRODで理想的ではないが、あなたは次の落とし穴真

{ 
    "rules": { 
    ".read": true, 
    ".write": "auth != null" 
    } 
    } 

に読み込む設定することができますテストするために、リスナーが非同期火災であることを覚えていて、通話を忘れることです。したがって、データがonDataChange()メソッドで受信されると、データへの操作はすべて行われる必要があります。

関連する問題