Удалить элемент из массива хранилищ - PullRequest
0 голосов
/ 28 марта 2020

В настоящее время я пытаюсь удалить элемент из массива, который в данный момент хранится в firestore.

Я проверял везде, даже документацию по firestore, и то, что они предлагают, не работает. В настоящее время это мой код, и пока он ничего не делает при попытке удалить из списка.

         Map<String, Object> note = new HashMap<>();
         note.put("posts", FieldValue.delete());
         documentReference.update("posts", FieldValue.arrayRemove(listView.getItemAtPosition(position).toString()));
         usersEmotions.remove(listView.getItemAtPosition(position).toString());
         listView.setAdapter(listAdapter);
         listAdapter.remove(listView.getItemAtPosition(position).toString());

Моя структура Firebase - enter image description here

1 Ответ

0 голосов
/ 28 марта 2020

Если вы хотите удалить элемент из массива, ваше клиентское приложение должно передать все значение объекта элемента. Это не сработает, если вы просто передадите индекс или одно из вложенных значений в этом элементе.

Для ваших данных это означает, что вам нужно будет создать HashMap с точным содержимым элемента (обе эмоции число и текстовая строка), и передайте его в update (). Например:

HashMap<String, Object> map = new HashMap<>();
map.put(emotion, ...);
map.put(text, "...");
documentReference.update(posts, FieldValue.arrayRemove(map));

Если вы не знаете всего содержимого элемента, это не сработает. Единственные другие варианты - это прочитать документ, изменить список в памяти и записать измененный список обратно в документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...