Как удалить пару ключ-значение в Firestore без использования точечной нотации - PullRequest
1 голос
/ 08 марта 2020

Моя структура выглядит следующим образом:

Firestore
--- collection: Restaurant
------- field: Managers (of type map)
------------ john.appleseed : 110909
------------ sarah.malak : 890758

Я не могу использовать использование arrayRemove, потому что тогда он удаляет все записи. И я не могу использовать точечную запись, потому что мои строки содержат точки, и они не распознаются, следовательно, не удаляются.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Следующее работает на другом языке. Используя документацию , вот порт Java:

DocumentReference ref = db.collection("Restaurant").document("Managers");

Map<String, Object> updates = new HashMap<String, Object>();
updates.put("john.appleseed", FieldValue.delete());

ref.update(changes).addOnCompleteListener(new OnCompleteListener<Void>() {});

Надеюсь, это не так уж и далеко (я не могу проверить с помощью Java).

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

Есть несколько способов, с помощью которых вы можете добиться удаления нескольких значений из вашей Коллекции, используя идентификатор, чтобы проверить, какие документы будут удалены. Приведенный ниже код - на основе сообщения от сообщества здесь - демонстрирует пример удаления документов по идентификатору Managers.

WriteBatch batch = db.batch();

for (String id : idsList) {
    DocumentReference ref = db.collection("Managers").document(id);
    batch.delete(ref);
}

batch.commit();

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

Кроме того, есть дополнительная информация в официальной документации Удалите данные из Cloud Firestore , если вы хотите проверить более подробную информацию.

Дайте мне знать, помогла ли вам эта информация!

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