我在android中使用firebase来保存用户信息并检索它。 我从firebase数据库中获取了值,但它没有转换为我的POJO类
UserInformation.java
public class UserInformation {
private String phoneNo;
private String address;
public UserInformation() {
}
public UserInformation(String address, String phoneNo) {
this.phoneNo = phoneNo;
this.address = address;
}
public String getPhoneNo() {
return phoneNo;
}
public String getAddress() {
return address;
}
}
ValueEventListener
public ValueEventListener displayUserData() {
return new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserInformation userInformation =
dataSnapshot.getValue(UserInformation.class);
mEtAddress.setText(userInformation.getAddress());
mEtPhoneNo.setText(userInformation.getPhoneNo());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
}
数据快照未转换为UserInformation.class。我正在获取所有空值。
答案 0 :(得分:0)
您似乎将侦听器附加到JSON树中UserInformation
节点上方一级。在这种情况下,结果包含一个带有 快照列表的快照。即使只有一个快照,您的代码也需要处理它是一个列表的事实。
public ValueEventListener displayUserData() {
return new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
UserInformation userInformation =
userSnapshot.getValue(UserInformation.class);
mEtAddress.setText(userInformation.getAddress());
mEtPhoneNo.setText(userInformation.getPhoneNo());
}
}