2017-12-21 7 views
0

実際には、人々はお互いにリクエストを送信できます。私がしたいのは、その人のプロフィールで1人の人に送られたすべてのリクエストを表示することです。私は、freshmeat_linux/Linux]のfirebaseアダプタですべてのユーザー情報を表示することができますが、私は要求の送信者だけを表示できませんでした。どのようにできるのか?私たちにアイデアを伝えることができれば、とても嬉しく思っています。Android - Firebaseが別のテーブルにあるすべてのデータを取得する

Firebase structure

答えて

1

私はあなたがこのコードを使用することができ、親の子供の名前を表示したい理解しています。

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Friend_req").child("recieved").child("id_of_reciepent"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      String request_sender_id = (String) ds.getKey(); 


     } 
    } 

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

フレンドリクエストを送信したフレンドの名前のみを表示するには、データベースを2回クエリする必要があります。これを実現するには、次のコードを使用してください。

String uid = firebaseAuth.getCurrentUser().getUid(); 

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference uidRef = rootRef.child("Friend_req").child("recieved").child(uid); 
ValueEventListener valueEventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      String key = ds.getKey(); 

      DatabaseReference userRef = rootRef.child("Users").child(); 
      ValueEventListener eventListener = new ValueEventListener(key) { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) { 
         String name = dSnapshot.child("Name").getValue(String.class); 
         Log.d("TAG", name); 
        } 
       } 

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

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
uidRef.addListenerForSingleValueEvent(valueEventListener); 

あなたの出力は次のようになります。

Bob 
Second Friend 
関連する問題