Взимает ли Firestore облачную функцию за считывание полученных документов? - PullRequest
0 голосов
/ 31 августа 2018

Взимает ли Firebase больше денег в первом по второму сценарию?

collection().get() // potentially retrieves infinite documents

collection().limit(smallerAmount).get() // only retrieve a smaller amount of documents

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

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Ваш вопрос задает несколько вопросов, которые на самом деле не связаны друг с другом.

Во-первых, чтение документа не совпадает с выходом и входом. Чтение документа - это результат простого выполнения запроса, который требует доступа к документу в Firestore. Он не учитывает объем сетевых данных, необходимых для отправки содержимого этого документа, который называется выходным.

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

В-третьих, за чтение документов взимается плата независимо от источника запроса. Думайте об этом как о стоимости использования индекса Firestore для быстрой обработки запросов. Это не имеет ничего общего с выходом, и все, что связано с количеством документов, которые должны быть затронуты для удовлетворения запроса.

В-четвертых, любой запрос, который читает больше документов, чем другой запрос, будет стоить дороже. Вы платите только за чтение документов, когда содержимое документов должно быть передано клиенту.

0 голосов
/ 31 августа 2018

Да, в первом случае взимается больше денег, сравните со вторым случаем.

Как указано в документе, на который вы ссылаетесь (т.е. https://firebase.google.com/docs/firestore/pricing#operations):

Когда вы слушаете результаты запроса, вы платите за чтение каждый раз, когда документ в наборе результатов добавляется или обновляется. Вы также взимается за чтение, когда документ удаляется из набора результатов потому что документ изменился. (Напротив, когда документ удалено, вы не платите за чтение.)

Поскольку ваш набор результатов во втором случае меньше (потому что вы используете limit()), в набор результатов будет добавлено меньше документов.

В случае облачных функций, считывающих данные Firestore, если регион вашей облачной функции не совпадает с регионом вашего Firestore (и не находится в одном мультирегионе), вы будете платить за выход в период между регионы. Снова посмотрите документ, на который вы ссылаетесь, а также https://firebase.google.com/docs/functions/locations#selecting_regions_for_firestore_and_storage


Обновление, из комментариев ниже

Для связи между облачными функциями и Firestore:

Выход в пределах региона -> свободный, Выход между регионами в одном и том же мультирегионе -> свободный, Выход между регионами (НЕ в одном и том же мультирегионе) -> не свободный, цены разные, если в США или нет в США. См. Таблицу внизу https://firebase.google.com/docs/functions/locations#selecting_regions_for_firestore_and_storage для получения подробной информации о соответствующих регионах

Также обратите внимание, что для Firestore на данный момент единственным доступным мультирегиональным местоположением является us-central , см. https://firebase.google.com/docs/firestore/locations

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