获取当前用户详细信息,即登录firebase的用户

时间:2017-06-27 12:43:03

标签: android firebase firebase-realtime-database firebase-authentication

我正在开发一个应用程序,我必须从firebase UserNode获取当前用户的详细信息。在我的情况下,我想获得当前用户的名字和姓氏。我成功获取了所有用户的列表,但是如何获取登录的当前用户详细信息。 我使用此代码获取所有用户,请指导我在此代码中执行哪些操作以获取当前登录的用户详细信息

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());
        }
    });

2 个答案:

答案 0 :(得分:0)

要获取特定用户,您需要在DatabaseReference中使用其唯一标识符。所以,你需要改变这一行:

DataRef = FirebaseDatabase.getInstance().getReference().child("UserNode");

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
String uid = firebaseUser.getUid();
String uid = firebaseUser.getDisplayName(); //display the entire name
DataRef = FirebaseDatabase.getInstance().getReference().child("UserNode").child(uid);

请使用此代码:

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());
    }
});

希望它有所帮助。

答案 1 :(得分:0)

试试这希望它可以帮助你

 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();
                } 
            }
        };