Невозможно удалить элемент из нескольких коллекций в Firebase - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть две коллекции в базе данных Firebase, скажем, A и B. Когда я добавляю элемент в одну из коллекций, скажем, A, он автоматически добавляет в другую коллекцию B. Но когда я удаляю элемент из коллекции A, он остается в другая коллекция B.

Снимок с консоли Firebase

Когда я удаляю элемент из коллекции A, он остается в другой коллекции B.

Я не могу понять, как удалить элементы в обеих коллекциях?

Пожалуйста, помогите.

Ответы [ 2 ]

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

У вас есть два способа сделать это:

1. со стороны клиента используйте пакетную запись ( подробнее здесь )

DoccumentReference doc_1_reference = firestore.collection("messages").document(doc_1_uid);
DoccumentReference doc_2_reference = firestore.collection("messages").document(doc_2_uid);

final batchWrite = firestore.batch();

batchWrite.delete(doc_1_reference);
batchWrite.delete(doc_2_reference);

await batchWrite.commit();
ْ Использование облачных функций путем добавления триггера удаления к документам и выполнения удаления другого документа при его запуске. Учитывая, что вы уже знаете, какой документ вы должны удалить, что нетрудно сделать ( читайте об этом здесь )
0 голосов
/ 18 апреля 2020

Это не реляционная БД. Каскадные обновления / удаления возможны в реляционных БД, таких как Sql, Postgresql, Firebird ... В No- SQL У вас нет никаких отношений одного документа к другому. Более того, желательно, чтобы некоторые данные клонировались в двух или более документах, а не создавались для этого отдельные do c.

Но, возможно, Вы можете достичь того, что хотите, используя ссылочный тип? Я сею это один или два раза, это может быть хорошей идеей, чтобы проверить это. Но быть описанием, это всего лишь поле с путем / ссылкой, без волхвов c здесь .

Официальным c:

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

Таким образом, вы либо хотите переосмыслить модель БД или необходимо вручную отслеживать каждый элемент, который вы хотите удалить.

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