2017-06-05 147 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