Итак, я пытаюсь создать многопользовательскую викторину в реальном времени.Я использую Google Real-time Multiplayer API вместе с базой данных Firebase в реальном времени.
В начале игры пользователям предлагается задать себе вопрос и дать два ответа, где 1 ответ правильный,Затем эта информация отправляется в базу данных реального времени Firebase под дочерним элементом «Игры» - «mRoomId» --- «userId»
Переменная uniqueRoomID - это конкретный идентификатор комнаты, из которой они получают игроков.Google API.
DatabaseReference myRef = database.getReference("Games").child(mRoomId).child(userId);
И я отправляю 4 значения с помощью функции setValue для этой конкретной ссылки.
Upload upload = new Upload(question,answer1,answer2, userId);
myRef.setValue(upload);
Дерево моей базы данных выглядит следующим образом

Мой вопрос:
Когда я представляю вопрос другому пользователю позже в игре, я не хочу показывать мой собственный вопрос, важен только вопрос другого пользователя.
Это мое значениеEventListener:
myReference = FirebaseDatabase.getInstance().getReference().child("Games").child(mRoomId);
myReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
showData(dataSnapshot);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
А это метод showData ();
private void showData (DataSnapshot dataSnapshot){
for(DataSnapshot ds : dataSnapshot.getChildren()){
Upload upload = ds.getValue(Upload.class);
Log.d("TAG", "question1 is " + upload.getQuestion1() );
}
}
Журнал в showData возвращает два разных вопроса из базы данных, потому что он перебирает детей.
Как получить только один из актуальных вопросовбыть представленным пользователю, играющему в игру?
Должен ли яструктурировать это по-другому, или есть способ получить только те значения, которые имеют отношение к мне?