【发布时间】:2020-09-21 23:53:48
【问题描述】:
我想从 Firebase 读取数据,但 Log.d("Uservalue", ""+value); 为我返回 null,我该怎么办?
MainActivity.java:
FirebaseUser user = mAuth.getCurrentUser();
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("USERS").child(user.getUid());
User user1 = new User(user.getEmail(), user.getDisplayName(), user.getUid(), user.getPhotoUrl().toString());
/* write to firebase database */
myRef.setValue(user1);
/*read*/
myRef.child(user.getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User value = dataSnapshot.getValue(User.class);
Toast.makeText(MainActivity.this, "User", Toast.LENGTH_SHORT).show();
Log.d("Uservalue", ""+value);
}
@Override
public void onCancelled(DatabaseError databaseError) { }
});
用户.java:
public class User{
private String email;
private String id;
private String imgurl;
private String name;
public User(){
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public User(String email, String name, String id, String imgurl) {
this.email = email;
this.id = id;
this.imgurl = imgurl;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getname() {
return this.name;
}
public void setname(String username) {
this.name = username;
}
public String getImgurl() {
return imgurl;
}
public void setImgurl(String imgurl) {
this.imgurl = imgurl;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
而 Logcat 返回 null
020-06-03 17:53:12.810 8720-8720/com.example.chatapp D/Uservalue: null
谁能帮帮我?谢谢。
然后
我想问一个问题,为什么User value = dataSnapshot.getValue(User.class);知道firebase中的名字=User中的名字,firebase中的email=User中的email……,这样我用value.getName()就可以得到我名字的数据了。
【问题讨论】:
标签: java android firebase firebase-realtime-database