2017-06-05 103 views
0

大家好我要趕在我火力數據庫中的所有鍵:火力地堡得到所有關鍵

Users- 
     26dfg678- 
       Name: jack 
       Job: Farmer 

     43jkhjh4- 
       Name: bill 
       Job: ICT 

我想趕上ID:26dfg67843jkhjh4並把它們放在一個陣列。這是我的代碼:

final DatabaseReference database_nomi = firebaseDatabase.getReference().child("Users"); 
      database_nomi.addChildEventListener(new ChildEventListener() { 
       @Override 
       public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       //here      
       **name[0] = dataSnapshot.getKey(); 
        Provee.setText(name[0]);** 

       } 
       @Override 
       public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

       } 

       @Override 
       public void onChildRemoved(DataSnapshot dataSnapshot) { 

       } 

       @Override 
       public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

如果我這樣做,只需要最後的,但我希望所有..

回答

1

要做到這一點,你需要通過使用ValueEventListener你的火力地堡快照閱讀(addListenerForSingleValueEvent)。

databaseReference.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     if (dataSnapshot.exists()) { 
      int i = 0; 
      for(DataSnapshot d : dataSnapshot.getChildren()) { 
       name[i] = d.getKey(); 
       i++; 
      } 
     } 
    }//onDataChange 

    @Override 
    public void onCancelled(DatabaseError error) { 

    }//onCancelled 
}); 

該代碼使用的foreach閱讀所有dataSnapshot孩子,節省其關鍵在每個迭代的數組。

+0

現在感謝它的工作 – user7385152