Как се играе с Firebase, поддържайки контрол върху честотната лента

След няколко седмици работа с Firebase и малко „какво да fuk?“ Събрах няколко прости съвета, които ви помагат да спестите известна честотна лента.

Те може да изглеждат очевидни сега, но те не се случиха, когато започнахме да работим с Firebase.

Привържете се с инструмента за профилиране на базата данни

Инструментът за профилиране на база данни е част от Firebase CLI. Той регистрира цялата активност, свързана с вашата база данни и ви дава подробни отчети. Отчетът включва част от информацията за времето за отговор, изтеглените и качени байтове и не-добавени заявки, които могат да повлияят на работата на приложението.

Колкото по-рано го използвате, толкова по-добре ще бъде за вашето приложение (и за вашето спокойствие;)).

Прочетете повече за инструмента за профили в официалната документация.

Активиране на локалното кеширане

За да не изтегляте данни всеки път, когато включите приложението, активирайте устойчивостта на диска. След това Firebase ще съхранява локално копие на базата данни и ще извлича само информация за нови, променени или изтрити елементи. Той също така ще ви позволи да изискате данните офлайн.

Прочетете повече за възможностите за офлайн в официалната документация.

Индексирайте данните си

Ако често филтрирате или поръчвате данните въз основа на определено поле, трябва да помислите за добавяне на индекс към него. Тази проста операция не само ще подобри производителността на вашите заявки, но и ще запази честотната лента, тъй като при неиндексирани заявки клиентът изтегля всички данни за даден възел и едва след това изпълнява заявката по него.

Прочетете повече за индексирането на данни в официалната документация.

Уверете се, че използвате правилния слушател, който слуша съответния възел

Firebase ви предоставя два типа слушатели:

  • стойност слушатели, което ви позволява да слушате промени в дадения възел (и неговите деца)
  • детски слушатели (добавено дете, променено дете, отстранено дете, преместване на дете), което ви позволява да слушате промени в децата на дадения възел

Звучи, че правят едно и също нещо, а? Не точно.

И така, каква е разликата?

Слушателят на стойности се задейства всеки път, когато данните на дадения възел се променят и той връща всички данни на това място, включително данни за деца.

Детето слушател се задейства всеки път, когато детето на дадения възел се добавя, променя, премахва или премества и то връща само данните на обработеното дете.

Какъв е изводът?

Слушателят на стойности трябва да се използва само за най-дълбоките възли, които всъщност представляват примитивни типове. В противен случай използвайте детския слушател.

Прочетете повече за извличането на данни в официалната документация.

Избягвайте да изтегляте данни, когато не ви трябват

Когато пишете данни чрез REST API, Firebase връща отговора, който съдържа данните, които току-що изпратихте. В повечето случаи вероятно няма нужда да получавате тези данни.

За да предотвратите изтеглянето на целия изход, просто добавете print = silent към параметрите на заявката. От този момент сървърът ще върне 204 Без код на състоянието на съдържанието.

Прочетете повече за параметъра за печат в официалната документация.

Не на последно място

Винаги четете внимателно документацията;)

Имате ли други съвети? Чувствайте се свободни да ги пускате в коментари. Ще бъде чудесно да поговорим за това :)