В моем приложении для викторины игрок вводит свой первый ответ как Integer
, который создает array
в Firestore следующим образом:
Map<String, Object> answer = new HashMap<>();
answer.put("answers", Arrays.asList(answerPlayer1Int));
answerRef.document("Round 1").collection(uidPlayer1).document(uidPlayer1)
.set(answer).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
}
});
В следующем фрагменте он печатает в своем втором ответьте на второй вопрос, и я хочу, чтобы это значение было добавлено в ранее созданный массив. В настоящее время я использую приведенный ниже код, который работает, когда первый ответ и второй ответ не идентичны, но когда первый ответ равен второму, второй ответ не обновляет список массивов, как мне бы хотелось.
Я знаю, в чем причина этого, но теперь я хочу знать, возможно ли даже просто добавить какое-либо значение в существующий массив в Firestore?
Вот код второго ответа:
answerRef.document("Round 1").collection(uidPlayer1).document(uidPlayer1)
.update("answers", FieldValue.arrayUnion(answer2Player1Int)).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
}
});
Это вывод, который я сейчас получаю, когда игрок использует один и тот же ответ на каждый вопрос:
И вот как я хочу, чтобы вывод был:
Любая помощь снова очень ценится!