Я пытаюсь реализовать счетчик, который подсчитывает уведомления из двух разных коллекций. Одна коллекция учитывает запрос друзей, а другая - запрос событий. И я хочу показать номер из обеих добавленных коллекций. Если я просто хочу показать счетчик одной коллекции, он прекрасно работает, но не оба, потому что он говорит: «Преобразовать счетчик в конечный массив», потому что он во внутреннем классе.
Ошибка в строке: // receivecount = map.size ();
Так что мой код сейчас выглядит так
mFirestore.collection("users").document(usid).collection("request").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
int receivecount = 0;
for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
String type = (String) doc.getDocument().get("Type");
final String otherID = (String) doc.getDocument().get("otherid");
mFirestore.collection("users").document(usid).collection("eventeinladung").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
Map map = doc.getDocument().getData();
// receivecount = map.size();
}
}
}
});
if (type.equals("received")) {
receivecount++;
}
}
}
if(receivecount == 0){
number.setVisibility(View.INVISIBLE);
numbercontainer.setVisibility(View.INVISIBLE);
}
else {
number.setText(String.valueOf(receivecount));
}
}
});