Эффективный способ создания подколлекции из списка с Firestore - PullRequest
0 голосов
/ 24 марта 2020

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

documents.forEach((doc) => Firestore.instance
          .collection('mainCollection')
          .document('mainDoc')
          .collection('mySubCollection')
          .add(doc));

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

Ответы [ 2 ]

1 голос
/ 24 марта 2020

У вас есть два варианта:

  1. Добавить каждый документ по отдельности.
  2. Использовать пакетную запись , которая ограничена 500 документами (см. WriteBatch для Flutter).

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

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

В Firestore API нет ни одного addAll, о котором я знаю, но вы можете использовать функцию генератора , чтобы добавить каждый документ асинхронно и узнать, когда это будет сделано, потому что Stream вернул по генератору будет done.

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