1

firebase UserNodeから現在のユーザーの詳細を取得する必要があるアプリケーションを開発しています。私の場合、私は現在のユーザーのファーストネームとラストネームを取得したいと考えています。私は首尾よくすべてのユーザーのリストを取得していますが、ログインしているユーザーの現在の詳細を取得するにはどうすればいいですか。 このコードを使用してすべてのユーザーを取得します。現在ログインしているユーザーを取得するには、詳細現在のユーザーの詳細、つまりfirebaseにログインしているユーザーを取得します。

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

答えて

0

はあなたDatabaseReference彼のユニークな識別子で使用する必要がある特定のユーザーを取得します。だから、あなたは、この行を変更する必要があります:

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 = FirebaseDatabase.getInstance().getReference().child("UserNode"); 

をこのコードを使用してください:

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

はそれがお役に立てば幸いです。このラインLog.i( "名前"、acctname)上: "printlnのメッセージを必要とすると、java.lang.NullPointerExceptionが";

+0

それは言います –

+0

私はあなたの編集コードを試してみましょう –

+0

それは男性が働いています... Tankyou so much :) –

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

問題はすでに解決されていましたが、あなたのためにupvote :) –

関連する問題