Оптимизация чтения документов Firebase - PullRequest
0 голосов
/ 29 марта 2019

Я использую Firebase FireStore для своего приложения «Реагируй», я создаю приложение, которое будет отправлять геолокацию пользователя в FireStore и генерировать тепловую карту, и приложение будет отправлять местоположение пользователя каждые 5 минут, мои данные выглядят так

enter image description here

Сейчас у меня около 1000 документов, каждый раз, когда я обновляю приложение, оно будет пытаться получить все координаты для создания тепловой карты.

Проблема, с которой я столкнулся, заключается в том, что, когда он генерирует тепловую карту, ему нужно будет прочитать все 1000 документов, а если у меня будет 5000 координат / документов, и у меня будет 10 пользователей, чтобы использовать его, он достигнет предела чтения документовв бесплатной базе Firebase, которая составляет 50 КБ / день.

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

1 Ответ

0 голосов
/ 29 марта 2019

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

ЕслиЯ правильно сделал вычисления, основываясь на этой странице документации https://firebase.google.com/docs/firestore/storage-size, которая объясняет вычисления размера хранилища, вы можете рассчитать, что документ с 3 массивами с именами lat, long и ts под вашим coordsКоллекция, которая хранит данные для 288 * 31 триплетных значений (288 = каждые 5 минут за один день), будет иметь максимальный размер 857 088 байт, что меньше максимально возможного размера для документа (т. е. 1 048 576 байт), как представлено здесь: https://firebase.google.com/docs/firestore/quotas

Конечно, вам придется иметь дело с полями массива, но для этого вы можете использовать firebase.firestore.FieldValue.arrayUnion();, см. https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array

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