これは私のテストのようです:
上記のフィールドは使用せず、単なるダミーです。しかし、私は「ユーザー」上のすべての子供を調べて、各メールに対して以下を返したいと思います:
System.out.println(emailString);
オブジェクトをリストする唯一の方法はfirebaseAdapterを使用することですが、それを行う別の方法はありますか?
最も簡単な方法は、ValueEventListenerを使用することです。
FirebaseDatabase.getInstance().getReference().child("users")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
User user = snapshot.getValue(User.class);
System.out.println(user.email);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot item_snapshot:dataSnapshot.getChildren()) {
Log.d("item id ",item_snapshot.child("item_id").getValue().toString());
Log.d("item desc",item_snapshot.child("item_desc").getValue().toString());
}
}
}
ノードsersへの参照があるとしましょう。次のようにノードを反復処理できます。
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot child : dataSnapshot.getChildren() ){
// Do magic here
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {}
});
DataSnapshot child
forループ内では、sersではなく、UIDをキーとして使用します。