Сколько клиентов подключено к моему пожарному депо? - PullRequest
0 голосов
/ 18 октября 2019

Metrics Explorer in my Stackdriver Dashboard Я работаю над приложением флаттера, которое извлекает 341 документ из пожарного магазина, после 2 дней анализа я обнаружил, что мои запросы на чтение увеличиваются слишком сильно. Итак, я сделал диаграмму в проводнике метрик стекадрайвера , из которой я узнал, что мое приложение просто читает 341 документ один раз, это консоль Firebase, которая увеличивает мои чтения.

Теперь перейдем к тем вопросам, которые меня беспокоят:


1) Как считается чтение, когда мы видим данные на консоли, и как я могу уменьшить количество запросов на чтение? Как правило, существует 341 документация, но при обновлении консоли отображается более 600 операций чтения.


2) Как видно на рисунке, существует два типа чтения документов 'LOOKUP' и 'QUERY', какая разница между ними?


3) Я получаю данные из пожарного магазина за один раз, и когда я открываю свое приложение, диаграмма показывает 1активный клиент , что круто, но в следующие 5 минут число активных клиентов начинает увеличиваться.

Может кто-нибудь объяснить мне, почему это происходит?
В последнем вопросе япопытался отключить все учетные записи службы, а затем снова открыл мое приложение, но снова получил то же самое.

 Firestore.instance.collection("Lectures").snapshots(includeMetadataChanges: true).listen((d){
  print(d.metadata.isFromCache);//prints false everytime 
  print(d.documents.length);// 341 
  print(d.documentChanges.length);//341 
});

Это фрагмент кода, который я использую. Когда приложение запускается, оно запускается только один раз.

1 Ответ

1 голос
/ 30 октября 2019

Я постараюсь ответить на ваши вопросы:

Как считается чтение, когда мы видим данные на консоли, и как я могу уменьшить количество запросов на чтение? В основном существует 341 документация, но при обновлении консоли отображается более 600 операций чтения.

Операции чтения рассматриваются в зависимости от того, как вы запрашиваете базу данных Firestore, в дополнение к вашему доступу к этой базе данных изконсоль, поэтому при использовании консоли Firebase будут выполняться операции чтения, и даже если вы оставите консоль открытой для выполнения других действий, при возникновении новых изменений в базе данных эти изменения также автоматически повлекут за собой чтение. и за любой документ, считанный с сервера, будет выставлен счет,Неважно, откуда пришло чтение. Консоль должна быть включена в это.

Проверьте это официальную документацию под заголовком «Управление данными» , которое вы можете увидеть там, где есть примечание: «Примечание: операции чтения, записи и удаления выполненыв консоли подсчитайте, сколько вы используете Cloud Firestore. "

Говоря, что если вы считаете, что с этим есть проблема, вы можете напрямую связаться с Firebase support , чтобы получить более подробные ответы.

Однако, если вы проверите бесплатный план Firebase , вы увидите, что у вас есть 50 000 бесплатных чтений в день.

Обходной путь, который я нашел для этого (спасибо Dependar Sethi)

  1. Создание закладки на вкладке использования страницы Firestore. (Таким образом, вы в основном «пропускаете» вкладку «Данные»)
  2. Добавление фиктивной коллекции определенным образом, которая гарантирует, что это первая коллекция (в алфавитном порядке), которая загружается по умолчанию на странице Firestore.

вы можете найти его полное решение здесь .

Кроме того, вы можете оптимизировать свои запросы, однако вы хотите получать только те данные, которые хотите, используя метод where () и нумерация страниц с помощью Firebase

Как вы можете видеть на картинке, есть два типа документов: "LOOKUP" и "QUERY", какая разница между ними?

Полагаю, между ними нет существенной разницы, но «QUERY» получает фактические данные (когда вы вызываете метод data ()), а «LOOKUP» получает ссылку на эти данные (безВызов метода data ()).

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

Для этого вопроса, учитывая показатели, которые вы выбираете в Stackdriver, я вижу 3 подключенных клиента. и согласно расшифровке «подключенного клиента» метрика:

Количество активных соединений. Каждый мобильный клиент будет иметь одно соединение. У каждого слушателя в админ SDK будет одно соединение. Отбор проб каждые 60 секунд. После выборки данные не отображаются в течение 240 секунд.

Поэтому, пожалуйста, проверьте: сколько мобильных телефонов подключено к этому экземпляру и сколько слушателей у вас в приложении. Сумма всех из них представляет собой фактическое количество подключенных клиентов, которые вы видите в Stackdriver.

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