[英]Get current user details i.e. the user which is logged in firebase
I am developing an application in which I have to get the current user details from the firebase UserNode.我正在开发一个应用程序,我必须在其中从 firebase UserNode 获取当前用户详细信息。 In my case I want to get firstname and lastname of the current user.
就我而言,我想获取当前用户的名字和姓氏。 I am successfully getting the list of all users but what to do to get the current user details who is logged in. I use this code to get all users, please guide me what to do in this code to get the current logged in user details
我成功获取了所有用户的列表,但是如何获取当前登录的用户详细信息。我使用此代码获取所有用户,请指导我在此代码中做什么以获取当前登录的用户详细信息
DatabaseReference DataRef;
DataRef = FirebaseDatabase.getInstance().getReference().child("UserNode");
DataRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
String acctname = (String)childSnapshot.child("firstname").getValue();
Log.i("name", acctname);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("error", databaseError.getMessage());
}
});
To get a particular user, you need to use in your DatabaseReference
his unique identifier.要获取特定用户,您需要在
DatabaseReference
使用他的唯一标识符。 So, you need to change this line:所以,你需要改变这一行:
DataRef = FirebaseDatabase.getInstance().getReference().child("UserNode");
with和
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
String uid = firebaseUser.getUid();
String uid = firebaseUser.getDisplayName(); //display the entire name
DataRef = FirebaseDatabase.getInstance().getReference().child("UserNode").child(uid);
And please use this code:请使用此代码:
DataRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String acctname = childSnapshot.child("firstname").getValue(String.class);
Log.i("name", acctname);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("error", databaseError.getMessage());
}
});
Try this Hope it helps you试试这个希望它对你有帮助
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseAuth.AuthStateListener authListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if (firebaseUser != null) {
String userId = firebaseUser.getUid();
String userEmail = firebaseUser.getEmail();
}
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.