-3

から情報を取得ここに私のデータベースはFirebaseにあります:誰かが私のアプリにログインした後、私は、ユーザーの名前を取得したいFirebase

Here's my database on Firebase

final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
DatabaseReference ref = database.getReference("hellodoctor-65e79/message/user-doctor"); 

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

    ref = ref.child(user.getUid()); 

    ref.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      userDoctor[0] = dataSnapshot.getValue(UserDoctor.class); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

しかし、それは動作しません、私を助けてください、あなたの助けを事前に感謝します。

+0

ショー誤差ください とするものですuserDoctor [0]あなたが 'へお電話でそれを含めるべきではありません、その場合には、それはhellodoctor-65e79'は、データベースの名前である'のように見えるのスクリーンショットから、 – Elsunhoty

+0

ref。したがって: 'DatabaseReference ref = database.getReference(" message/user-doctor ");' –

+0

また、あなたのアプリケーションがなぜ動かないのかについての重要な情報を含んでいるかもしれないので、 'onCancelled'を無視しないでください。代わりに 'public void onCancelled(DatabaseError databaseError){throw databaseError.toException();}を実行します。 } ' –

答えて

0

これは私がXcodeで、アンドロイドではなく、私はそれをやっていますが、うまくいけば、何が起こっているか見てみることができます。

これは、ユーザー名を取得するだけの場合です。すべてのユーザーの詳細を取得する場合は、NSObjectを使用することをお勧めします。

func retrieveUsername() { 
    guard let uid = FIRAuth.auth()?.currentUser?.uid else { 
     return 
    } 
    let ref = FIRDatabase.database().reference().child(uid).child("name") 

    ref.observe(.value, with: { (snapshot) in 
    print("Username:", snapshot.value as! String) 
    }, withCancel: nil) 
}