Я хочу, чтобы пакетный процесс с FIrestore + CloudFunctions - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу, чтобы пример кода добавил документы в несколько коллекций Firestore одновременно

Это пример моей структуры Firestore.

{
   "users": {
      "UUID-1": {
         "list":[
            "text1",
            "text2",
            "text3",
            "text4",
            ...
         ]
      },
      "UUID-2": {
         "list":[
            "text1",
            "text2",
            "text3",
            "text4",
            ...
         ]
      }
      ...
   }
}

Я хочу поместить текст в список [] всех пользователей в пользователях

Я прочитал эту статью и написал следующий код. https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes

let batch = db.batch();
batch.set(
  db.collection('users').doc().collection(list),
    {
      unread: newUserId
    }
);

batch.commit();

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете использовать несколько операций записи в виде одного пакета (или транзакции), который содержит две операции set().

Из Документация (я сам не проверял ее формально):

// Get a new write batch
let batch = db.batch();

// Set the value of 'John Doe'
let johnRef = db.collection('users').doc('UUID-1').collection('list');
batch.set(nycRef, {name: 'John Doe'});

// Set the value of 'Mary Thompson'
let maryRef = db.collection('users').doc('UUID-2').collection('list');
batch.set(maryRef, {name: 'Mary Thompson'}); 

// Commit the batch
return batch.commit().then(function () {
  // ...
});

Надеюсь, это поможет.

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