Я использую Firebase с Android для создания простого приложения чата. Когда пользователь выбирает другого пользователя для чата, я хочу проверить, общались ли они вместе или нет.
В методе onCreate()
я извлекаю все комнаты, которые ранее использовал текущий пользователь, и помещаю их в массив, называемый MyChatRooms<>
.
Затем я хочу проверить каждую комнату, чтобы увидеть пользователей комнаты.
Проблема в том, что цикл, который я использую для перебора имен комнат, заканчивается, прежде чем я смогу извлечь какие-либо данные из базы данных.
Я знаю, что у меня есть похожие вопросы, но ни один из ответов не помог мне.
Вот соответствующий код:
if (!MYChatRooms.isEmpty()) {
for (j = 0; j < MYChatRooms.size(); j++) {
roomref.child(MYChatRooms.get(j)).child("First User").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot1) {
if (!dataSnapshot1.getValue().toString().equals(Username) && dataSnapshot1.getValue().toString().equals(NUsername)) {
Users += dataSnapshot1.getValue().toString() + ",,, ";
} else if (dataSnapshot1.getValue().toString().equals(Username)) {
roomref.child(MYChatRooms.get(j)).child("Second User").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot2) {
if (dataSnapshot2.getValue().toString().equals(NUsername)) {
Users += dataSnapshot2.getValue().toString() + ",,, ";
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}