2017-09-07 3 views
0

現在、Firebaseの子フォルダに保持されているすべてのものを取得できます。私はそのようにデータベースに書き込みます。リストとしてFirebaseからデータを取得

private void commitPost() { 
    final String commentInput = commentText.getText().toString().trim(); 
    commentProgress.setMessage("Posting"); 
    commentProgress.show(); 

    String uniqueId = UUID.randomUUID().toString(); 
    commentDB.child(postID).child("Comments").child(uniqueId).setValue(commentInput); 
    commentProgress.dismiss(); 
    finish(); 
} 

現在、子フォルダに保持されているすべての値を読み取り、最終的にはリストビューに表示したいと考えています。

データベースJSON;

"Engagement" : { 
"-Kne46iBe6ooNFKTv_8w" : { 
    "Comments" : { 
    "c323835c-290c-44f3-8070-f9febf698ec9" : "none now!", 
    "stg15QKZFhNmTCYrgL5PtQ4wxJf2" : "testing" 
    }, 
    "Likers" : { 
    "stg15QKZFhNmTCYrgL5PtQ4wxJf2" : "[email protected]" 
    } 
+0

データベースの構造を投稿してください。 –

+0

@AlexMamoが完了しました。 – Kizzle

+0

どの子フォルダですか? –

答えて

2

のみ、特定のノードからデータを取得するには、次のコードを使用してください:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference engagementRef = rootRef.child("Engagement").child("-Kne46iBe6ooNFKTv_8w").child("Comments"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      String value = ds.getValue(String.class); 
      Log.d("TAG", value + ", "); 
     } 
    } 

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

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

none now!, testing, 
関連する問題