Как рассчитать чтение / запись по запросу Firestore / где операция? - PullRequest
0 голосов
/ 02 мая 2018

Документация Firebase Firestore гласит:

Получить несколько документов из коллекции

Вы также можете получить несколько документов с одним запросом путем запроса документов в коллекция. Например, вы можете использовать where () для запроса всех документы, которые соответствуют определенному условию, затем используйте get () для извлечения результаты:

var citiesRef = db.collection('cities');
var query = citiesRef.where('capital', '==', true).get()
    .then(snapshot => {
      snapshot.forEach(doc => {
        console.log(doc.id, '=>', doc.data());
      });
    })
    .catch(err => {
      console.log('Error getting documents', err);
    });

Если у меня есть коллекция с N документами, буду ли я платить за N-чтение или за одно чтение для указанного выше запроса?

Есть ли способ получить количество операций чтения / записи для каждого вызова с использованием SDK?

В качестве некоторого фона для моего рационального запроса у меня есть одна коллекция с большим количеством документов (около 20 000). Я хочу экспортировать документы всей коллекции наиболее экономичным способом (с наименьшим количеством операций).

Ответы [ 2 ]

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

Каждый документ, полученный в результате запроса, считается прочитанным документом. Если ваш запрос соответствует и возвращает N документов, это будет стоить N документов.

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

База данных будет считывать из N документов, чтобы отфильтровать их все. Но только документы, успешно прошедшие тест 'capital', '==', true, будут загружены локально. Вам не нужно бояться иметь большие коллекции документов, но при получении документов вы должны быть уверены, что получаете только те, которые вам нужны, потому что их загрузка замедляет ваше приложение.

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

https://firebase.google.com/docs/database/ios/structure-data

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