Получение коллекции Firebase и итерация по данным: сколько операций чтения из базы данных? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть следующий код, который читает из базы данных Firebase:

db.collection(ColPath)
        .get()
        .then(data => {
          const results : any[] = [];
          if (data.docs.length > 0) {
            data.docs.forEach(doc => {
              const d = doc.data();
              results.push(d);
            });
          }
      });

Мой вопрос: сколько операций чтения из базы данных это делает?

Я предполагаю, что получение коллекциитолько одно чтение.Но как насчет doc.data ().Это делает одно чтение на документ?Если это так, цикл forEach заставляет его выполнять несколько операций чтения из базы данных.Это правильно?

1 Ответ

0 голосов
/ 08 февраля 2019

Каждый прочитанный документ приводит к одному прочтению.Все вращается вокруг отдельных документов.Коллекции - это просто контейнеры;они не читаются.

Ваш запрос приведет к одному чтению для каждого документа, соответствующего запросу.

Цикл foreach не вызывает чтения.Вызов data () не вызывает чтения.Выполнение запроса вызывает чтение.Если вы выполняете запрос и ничего не делаете с результатами, документы по-прежнему считываются и сохраняются в памяти (запрос не знает, что вы хотите с ними делать).

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