0

您好,我正在尝试从实时 firebase 字段中检索数据,但它返回 null。我检查了 textView52.setText (firebaseUser.getEmail ()); 看看它是否真的连接并且它有效。问题在于从数据库中恢复一个值,在这种情况下是字段“名称”有人可以帮助我吗?难道我做错了什么?欢迎任何帮助。

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
    ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String userUid = user.getUid();
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String data = dataSnapshot.child("name").getValue(String.class);
            textView52.setText(data);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

}

在此处输入图像描述

4

2 回答 2

2

尝试

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userUid = user.getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(userUid).addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String data = dataSnapshot.child("name").getValue();
        textView52.setText(data);
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});}
于 2020-02-04T03:52:15.790 回答
0

更新!检查那些行

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {...}

基本上你尝试在用户中调用另一个名为用户的孩子,很容易理解,在这里替换那个用户的

ref.child("use_that_key_here").addListenerForSingleValueEvent(new ValueEventListener() {...}

不是解决方案,您不能对每个键进行硬编码,但是这样您应该可以看到数据

尝试这样的事情:

// ref to db
DatabaseReference ref= FirebaseDatabase.getInstance();
ref.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
       //debug this par and check if you can see your user
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});
于 2020-02-04T03:37:58.903 回答