Используя Firestore, можете ли вы обновить и добавить в подколлекцию с помощью одного вызова обновления? - PullRequest
0 голосов
/ 13 мая 2018

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

например, мы изменим этот пример с избранного, являющегося хешем объекта, на подколлекцию

var frankDocRef = db.collection("users").doc("frank");
frankDocRef.set({
    name: "Frank",
    favorites: { food: "Pizza", color: "Blue", subject: "recess" },
    age: 12
});

на

frankDocRef.set({
    name: "Frank",
    favorites.add({ food: "Pizza"}), // I know this is probably the wrong syntax
    age: 12
});

Буду ли я создавать пакетную запись или транзакцию, потому что она будет проходить по одному документу и документу вложенной коллекции отдельно?

1 Ответ

0 голосов
/ 13 мая 2018

Firestore не предлагает API для обновления нескольких документов (независимо от того, где они находятся) за один вызов set () или update () для ссылки на документ.

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

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