Понимать, где использование полосы пропускания поступает из базы данных Firebase

Мое приложение растет с точки зрения использования полосы пропускания с базой данных Firebase, и я пытаюсь оптимизировать свои запросы, чтобы использовать меньшую пропускную способность (таким образом, снизить стоимость), но я делаю это довольно слепо, потому что нет статистики о моем использовании базы данных (I не могут знать, какие запросы занимают наибольшую пропускную способность).

Есть ли способ узнать, какие запросы занимают большую полосу пропускания? Как вы собираетесь оптимизировать использование с базой данных Firebase?

Edit:

У меня есть сайт чата, и я использую наблюдателей, таких как messagesRef.child(conversationID).limitToLast(25).on('child_‌​added'... conversationsRef.child(conversationID).('participants').on('value'...

Ответ 1

Профайлер Firebase спас мне жизнь. https://firebase.google.com/docs/database/usage/profile

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

Ответ 2

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

трудно помочь, не видя фактических запросов или модели данных.

Ответ 3

На всякий случай, если вы еще не используете Firebase .indexOn()..., что является лучшим способом улучшить вашу производительность (так они говорят ниже), посмотрите Индекс ваших данных. Ребята из Firebase говорят:

Если вы заранее знаете, каковы будут ваши индексы, вы можете определить их с помощью правила .indexOn в ваших правилах базы данных Firebase Realtime, чтобы улучшить производительность запросов.

Ответ 4

высоко согласен с ответом ZagNut.

Заполнение регистрационных запросов на "then()" поможет вам здесь.

Вы можете хранить количество запросов для запроса node на стороне клиента и сохранять этот запрос по идентификатору клиента в отдельном node из вашей структуры данных в базе данных firebase.

Теперь отфильтруйте эти запросы, чтобы найти шаблоны использования.

Спасибо.