【问题标题】:retrieving data from firebase database android从firebase数据库android检索数据
【发布时间】:2019-11-22 22:53:57
【问题描述】:

你好开发者

我正在尝试从 Firebase 检索数据,但在将 valueEventListener 应用于数据后显示空数据,该值包含在 User 这是我在 firebase 上的数据库

这是我的代码

类用户

public class User {
public String id, fname,lname, side, email, phone;


public User(){ }

public User(String id,String fname,String lname,String side, String email, String phone) {

    this.id=id;
    this.fname = fname;
    this.lname = lname;
    this.side = side;
    this.email = email;
    this.phone = phone;
}

public String getFname() {
    return fname;
}

public String getLname() {
    return lname;
}

public String getSide() {
    return side;
}

public String getEmail() {
    return email;
}

public String getPhone() {
    return phone;
}

public String getId() {
    return id;
}

我的valueEventListener

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference("users_client");
DatabaseReference userNameRef = rootRef.child(uid);
userNameRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

  userinfo=dataSnapshot.getValue(User.class);
  Toast.makeText(Login.this,userinfo.getFname(),Toast.LENGTH_SHORT).show();
  }
   @Override
   public void onCancelled(@NonNull DatabaseError databaseError) {
         }
  });

错误:java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.xxxx.gestient.User.getFname()' on a null object reference

【问题讨论】:

  • 你想显示那个特定的用户吗?
  • 不,我想获取有关此特定用户的信息
  • 但我不知道为什么我总是得到一个空用户
  • 你得到 null 因为你没有输入 child(userUid) 。你可以叫他的userUid吗?

标签: android firebase firebase-realtime-database


【解决方案1】:

您收到该错误是因为您在参考中使用了错误的uid。使用以下代码行时:

rootRef.child(uid);

您正在将来自身份验证过程的用户 ID 传递给 child(uid) 方法。为了能够获取用户详细信息,您的用户对象的键应该与 uid 匹配。不幸的是,在您的数据库中,您没有使用该 ID,而是使用 push() 方法生成的密钥,这是不正确的。您有两种选择,一种是删除该用户并使用正确的uid 再次添加它,或者将上面的代码行更改为:

rootRef.child("-LuIC ... _9cx");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 2021-05-07
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多