Я пытаюсь удалить одно значение "m80KEXuYelOGutSLtQelQkIDj9H2"
из моего массива "players"
в Cloud Firestore.
Журналы показывают, что String findTeam равен CoolTeam1
, а String userId равен m80KEXuYelOGutSLtQelQkIDj9H2
Мой код:
DocumentReference docRef = db.collection("teams").document(findTeam);
docRef.update({"players":FieldValue.arrayRemove(userId)});
Я получаю "Неожиданный токен" в Android Studio для {
и })
в приведенном выше.
Какие идеи будут высоко оценены?
Я также попытался использовать точечную нотацию, как показано ниже, она запускается, но не удаляет значение:
db.collection("teams").document(findTeam).update("players." + userId, FieldValue.delete());
Я также пытался использовать обновление карты, оно также запускается и показывает «Удаление игрока успешно» в журнале. Но игрок не удаляется в Firestore.
Map<String,Object> updates = new HashMap<>();
updates.put(userId, FieldValue.delete());
doc.update(updates).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Log.i(TAG, "Deleting player successful");
}
else{
Log.i(TAG, "Deleting player NOT successful");
}
}
});```