【问题标题】:DataSnapshot Firebase: Getvalue return nullDataSnapshot Firebase:Getvalue 返回 null
【发布时间】:2018-04-15 14:21:42
【问题描述】:

我尝试从 Firebase 实时数据库中读取用户的数据,但它总是返回 null。这是我的代码:

    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference ref = database.getReference();
    ref.child("shop").child("Users").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
                Users user = dataSnapshot.getValue(Users.class);
        }

        @Override
        public void onCancelled(DatabaseError error) {
            // Failed to read value
            Log.w("1abc", "Failed to read value.", error.toException());
        }
    });

这是用户类:

public class Users {

    private String full_name;
    private String UID;
    private String email;

    public Users(String newemail, String newUID, String newfull_name) {
        // ...
        this.email=newemail;
        this.full_name=newfull_name;
        this.UID=newUID;
    }
    public Users() {
        // ...

    }
}

这是我的数据库树:

谁能告诉我我哪里错了?提前致谢。

【问题讨论】:

  • 你遇到了什么错误?
  • 检查mAuth.getCurrentUser().getUid()的值
  • @kdblue 没有错误,只是运行不正确
  • @Pavneet_Singh:这很正常 :(
  • @Dang Tam 接受我的回答,它会帮助别人!谢谢。

标签: android firebase firebase-realtime-database


【解决方案1】:

将用户模型成员公开!

public class Users {

        public String full_name;
        public String UID;
        public String email;

        public Users(String newemail, String newUID, String newfull_name) {
            // ...
            this.email=newemail;
            this.full_name=newfull_name;
            this.UID=newUID;
        }
        public Users() {
            // ...

        }
    }

【讨论】:

    【解决方案2】:

    您需要在 POJO 类中添加 getter 和 setter:

    public class Users {
    
    private String full_name;
    private String UID;
    private String email;
    
    
    public Users(String newemail, String newUID, String newfull_name) {
        // ...
        this.email=newemail;
        this.full_name=newfull_name;
        this.UID=newUID;
    }
    public Users() {
        // ...
    
    }
    
    public String getFull_name() {
      return full_name;
     }
    
     public void setFull_name(String full_name) {
       this.full_name = full_name;
     }
    
     public String getUID() {
        return UID;
      }
    
     public void setUID(String UID) {
        this.UID = UID;
      }
    
     public String getEmail() {
      return email;
     } 
    
     public void setEmail(String email) {
       this.email = email;
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-21
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多