这是很直接的做法,但是我遇到了多个用户。当第一个用户登录时,他的名字和电子邮件都没有问题,但是当他退出登录而另一个用户登录(同一电话)时,当前用户详细信息返回null。
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
String uid = Objects.requireNonNull(firebaseAuth.getCurrentUser()).getUid();
userDetails = FirebaseDatabase.getInstance().getReference().child("Users").child(uid);
myref.keepSynced(true);
userDetails.keepSynced(true);
name = view.findViewById(R.id.my_name);
mail = view.findViewById(R.id.my_mail);
userDetails.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String Name = dataSnapshot.child("name").getValue().toString();
String Email = dataSnapshot.child("email").getValue().toString();
name.setText(Name);
mail.setText(Email);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
答案 0 :(得分:0)
结果证明代码很好,唯一的问题是我的firebase结构。第一个用户“电子邮件”和“名称”为小写,其余用户以大写字母users node, firebase Image
开头