Я создаю приложение для чата и пытаюсь запросить все сообщения, а затем разделить их соответствующим образом в зависимости от отправителя сообщения.
Вот так выглядит моя архитектура Firestore:
И мой код на данный момент:
CollectionReference chatRoomMsgs = db.collection("chatrooms").document(chatRoomID).collection("Messages");
chatRoomMsgs.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for(QueryDocumentSnapshot documentSnapshot: queryDocumentSnapshots){
if(documentSnapshot.get("sentby") == firebaseUser.getUid()){
}
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
То, что я (в настоящее время) пытаюсь сделать, это сначала извлечь ВСЕ сообщения чата, а затем отделить их в onSuccess .
Я пытаюсь сказать "хорошо, если сообщение было отправлено этим пользователем, возьмите значение поля изображения этого же документа и добавьте его в массив, чтобы к нему можно было получить доступ позже, и если сообщение не был отправлен тем же пользователем, также захватите URL изображения, но добавьте его в другой массив "
Как я могу это сделать? Спасибо!
Обновление Я пытался добавить ниже значение while l oop, чтобы получить какой-то вывод, не вызывая
ArrayList<String> sentPics = new ArrayList<String>();
while(documentSnapshot.get("sentby") == firebaseUser.getUid()){
sentPics.add(documentSnapshot.get("image").toString());
Log.d("PICLIST", sentPics.toString());
}