【发布时间】:2021-10-12 05:18:25
【问题描述】:
我正在开发一个可以登录/注册的简单应用。
一切正常,除了当我尝试从实时数据库上的“用户”路径获取数据时,即使我已经推送了我的数据,我的 UID 总是为空,这不是一个太复杂的部分,我可以正常获取数据与其他数据完全相同的类型?
这是我定义用户对象的部分:
public class User {
String profile_picture_url , username , user_email, user_uid;
public User(){
}
public User(String profile_picture_url , String userUID , String username,String user_email)
{
this.profile_picture_url = profile_picture_url;
this.user_uid = userUID;
this.username = username;
this.user_email = user_email;
}
//GETTER
public String getProfile_picture_url() {
return profile_picture_url;
}
public String getUsername() {
return username;
}
public String getUser_EMail() {
return user_email;
}
public String getUserUID() {
return user_uid;
}
}
这是我检索数据的部分:
private void readUserFromFB() {
FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
Log.d("firebase_debug2",firebaseUser.getUid());
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull @NotNull DataSnapshot snapshot) {
userList.clear();
for (DataSnapshot snapshot1 : snapshot.getChildren()) {
User user = snapshot1.getValue(User.class);
Log.d("firebase_debug2", " This is email " + user.getUser_EMail());
Log.d("firebase_debug2","This is uid " + user.getUserUID());
Log.d("firebase_debug2", "This is username " + user.getUsername());
userAdapter = new UserAdapter(getContext(), userList);
recyclerView.setAdapter(userAdapter);
}
}
@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {
}
});
}
在 logcat 中获取:
This is email tas@gmail.com
This is uid null
This is username tas
This is email wwqw@gmail.com
This is uid null
This is username wiiwi
为什么我会遇到这个烦人的问题,希望有人能帮我找出答案,因为我尝试了几个小时但无法弄清楚我错过了哪里。谢谢
【问题讨论】:
标签: java android json firebase firebase-realtime-database