2017-12-03 6 views
0

Firebaseデータベースから値を取得しようとしていて、テキストビューに設定しようとしています。私のデータベースには、イメージのような複数の子があります。私はそれから電話番号と住所の値を取得したいです。どうすれば入手できますか?私はAndroidが初めてで、ここで複数の回答を試みましたが失敗しました。誰もこれで私を助けることができますか?firebaseデータベースから子値を取得するにはどうすればよいですか?

Here is how my DB screenshot

+1

まず、あなたがしなければなりませんあなたがおそらく多くの問題に直面するので、それはあなたがそれについて知っていない場合は、このチュートリアルを参照してくださいチュートリアルをご覧くださいTa59RyRmQ4OedWrt – MrCurious

+0

ありがとう、私はすでにいくつかのチュートリアルに従っています。 – user5393041

答えて

0

そのデータを取得するには、次のコードを使用してください:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference usersRef = rootRef.child("Users"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      String address = ds.child("Address").getValue(String.class); 
      String phone = ds.child("Phone").getValue(String.class); 
      Log.d("TAG", address + "/" + phone); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
usersRef.addListenerForSingleValueEvent(eventListener); 

をそして、これは、単一のユーザーからアドレスを取得するためのコードです:

String uid = firebaseAuth.getCurrentUser().getUid(); 
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference userRef = rootRef.child("Users").child(uid); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     String address = dataSnapshot.child("Address").getValue(String.class); 
     Log.d("TAG", address); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
userRef.addListenerForSingleValueEvent(eventListener); 
+0

ありがとうございます。しかし問題がある。私は単一のユーザーのためにそれをしたい、それはすべてのユーザーのアドレスを呼び出しています。私はユーザーIDごとにそれをしたい。 – user5393041

+0

私の質問を編集してください。 –

+0

ありがとうございました。 – user5393041

関連する問題