如何从Firebase获取所有Childs的Java对象的ArrayList
如何使用更新的firebase命令从Firebase获取所有Childs的Java对象的ArrayList,目前我正在使用以下方法但无法获取列表。
ValueEventListener postListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // Get Post object and use the values to update the UI if(dataSnapshot!=null){ for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) { UserDataClass post = postSnapshot.getValue(UserDataClass.class); members.add(post); } } } @Override public void onCancelled(DatabaseError databaseError) { // Getting Post failed, log a message } }; mDatabaseRef.addValueEventListener(postListener);
下面是从firebase返回的datasnapshot,但是我无法从中获得所需的结果。
DataSnapshot { key = 12345, value = {Members={00000000={phoneNo=00000000, longitude=73.0703307, latitude=33.6396975, password=qwertyuiop, CName=00000000, admin=true, name=Anwar Kamal}, 03028084374={phoneNo=03028084374, longitude=73.0701292, latitude=33.6397129, password=qwerty, CName=00000000, admin=false, name=Nehal Khan}, 03028084516={phoneNo=03028084516, longitude=73.0702659, latitude=33.6397622, password=qwerty, CName=03035356317, admin=false, name=Jamal Khan}}} }
我想要的就是所有成员的名单
我的java对象是
public class UserDataClass { public double latitude; public double longitude; public String Name=""; public String password=""; public String phoneNo=""; public String CircleName=""; public boolean isAdmin=false; }
ValueEventListener
有另一个目的。 您应该使用dataSnapshop.getValue()
以及dataSnapshop.getValue()
来实现您想要的,例如:
ChildEventListener childEventListener = new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) { UserDataClass post = postSnapshot.getValue(UserDataClass.class); members.add(post); } //...
注意:您应该将具有当前firebase_referance
的侦听器用于Users
表。 因此你应该更换
mDatabaseRef.addValueEventListener(postListener);
同
mDatabaseRef.child("Members").addChildEventListener(childEventListener);
请注意,您的Members
表的完整路径是彩色的,我无法计算路径。
你可以在这里找到整个文档
祝好运
- 如何在Android中遍历Firebase结构?
- 如何反转使用FirebaseUI-Android获取的数据?
- 在发送数据时,从Android应用中的Firebase检索ServerValue.Timestamp
- 如何使用Android对Firestore进行分页?
- 如何知道firebase的ChildEventListener是否找到了孩子?
- 如何使用Firebase Google Maps API Android中的数据更新标记位置
- 如何解决Android Firebase错误“默认FirebaseApp未在此过程中初始化”?
- removeEventListener不删除firebase中的侦听器
- 如何在Firebase中获取特定的pushID?