如何从Firebase获取特定节点并将其添加到ArrayList中?我使用Map键作为Firebase根节点名称来查找特定的节点。
我写的代码为:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference().child("Users");
rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
for(Map.Entry<String, String> singleContact: contacts.entrySet()) {
if (dataSnapshot.hasChild(singleContact.getKey())) {
Log.i("app", "Present: " + singleContact.getKey());
userModelObjects.add(dataSnapshot.getValue(FirebaseUserModel.class)); // added into ArrayList of type FirebaseUserModel
}
else {
Log.i("app", "Absent: " + singleContact.getKey());
userModelObjects.add(dataSnapshot.getValue(FirebaseUserModel.class));
}
}
}
public void onCancelled(DatabaseError databaseError) {
Log.i("app","failed to connect: "+databaseError.getMessage());
}
});
代码给我一个警告
W / ClassMapper:在课堂上找不到12345的设置器/字段
com.demo.example.Firebase.FirebaseUserModel
我的FirebaseUserModel.java类
public class FirebaseUserModel {
private String fname,lname,gender;
private int isInstalled,day,month,year;
public FirebaseUserModel() { }
public FirebaseUserModel(String fname,String lname,String gender,int isInstalled,int day,int month,int year)
{
this.fname=fname;
this.lname=lname;
this.gender=gender;
this.isInstalled=isInstalled;
this.day=day;
this.month=month;
this.year=year;
}
}
火力基地的结构
-Users
-12345
-fname:"abc"
-lname:"xyz"
-gender:"male"
-isInstalled:1
-day:1
-month:2
-year:1996
问题:我的Firebase节点未添加到ArrayList中。警告如上所示
最佳答案
如错误所示:
W / ClassMapper:在com.demo.example.Firebase.FirebaseUserModel类上找不到12345的setter /字段
您需要为实例变量添加getter和setter以便能够将对象与firebase结果进行映射
关于java - 通过搜索Firebase获取特定的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61277896/