Основни точки
Firebase е платформа Backend-as-a-Service (BaaS), която предоставя готови инструменти за разработка на приложения. Firebase освобождава разработчиците от необходимостта да изграждат сървърна инфраструктура от нулата — анализи, бази данни, удостоверяване, push известия и много повече са незабавно достъпни чрез SDK.
Google придоби Firebase през 2014 г. за 100 милиона долара и го интегрира с Google Cloud Platform. Firebase предлага над 20 продукта, които могат да се комбинират според нуждите на проекта. Повечето услуги имат щедър безплатен лимит (Spark Plan), а за растеж е достъпен план с плащане според използването (Blaze Plan).
Интеграцията на Firebase започва със създаване на проект в Firebase Console и добавяне на конфигурационен файл (GoogleService-Info.plist за iOS, google-services.json за Android). Firebase поддържа iOS, Android, Flutter, React Native, Unity и уеб приложения, което го прави универсално решение за всяка платформа.
Firebase Analytics е безплатен инструмент за анализ, който събира данни за поведението на потребителите. Firebase Analytics е ядрото на цялата платформа — данните от анализите се използват от всички други услуги на Firebase за насочване и персонализиране.
Firebase Crashlytics е най-популярният инструмент за проследяване на сривове на приложения. Crashlytics автоматично събира stack trace-ове, логове и данни за устройството при всеки срив на приложението. Докладите се групират по тип грешка, което позволява бързо идентифициране на най-критичните проблеми.
Crashlytics поддържа персонализирани логове, ключове и нефатални изключения. Нефаталните изключения позволяват проследяване на обработени грешки без срив на приложението — например неуспешна API заявка или изключение в бизнес логиката.
Firebase Performance е инструмент за наблюдение на производителността на приложението. Performance проследява времето за стартиране, мрежовото закъснение, рендирането на екрани и HTTP заявките. Идентифицира тесните места, които забавят приложението и влошават потребителското изживяване.
Интеграцията на Firebase Analytics с Crashlytics предоставя уникалната възможност да видите не само какво се е сривало, но и какви потребителски действия са предшествали срива. IT Sectr използва тази комбинация за бърза диагностика на грешки в продукция — времето от откриване до поправка се намалява 3–4 пъти.
Firebase предлага две NoSQL бази данни и облачно хранилище за файлове. Изборът между Firestore и Realtime Database зависи от сценария на използване — и двете бази данни синхронизират данни в реално време, но имат различни архитектури.
| Характеристика | Cloud Firestore | Realtime Database |
|---|---|---|
| Модел на данни | Колекции и документи (JSON обекти) | Едно голямо JSON дърво |
| Заявки | Съставни, индекси, сортиране, филтриране | Прости, сортиране от един възел |
| Мащабиране | Автоматично, мулти-регион | Един регион, ограничения на честотната лента |
| Ценообразуване | Обем на четене/писане/изтриване | Обем на трафик и съхранение |
| Офлайн режим | Поддържа се (кеш на диска) | Поддържа се (кеш в паметта) |
| Най-добро приложение | Чат, социални мрежи, сложни заявки | Чат, игри, проста синхронизация |
Cloud Storage е хранилище за файлове (изображения, видео, аудио). Firebase Storage автоматично се мащабира до петабайти и предоставя надеждно качване с възможност за възобновяване при прекъсване на връзката. Интегрира се с Firebase Auth за сигурен достъп.
Firestore се препоръчва за нови проекти поради гъвкавите си заявки и мащабируемост. Realtime Database остава добър избор за прости чатове и игри с малки количества данни. IT Sectr обикновено използва Firestore като основна база данни и Realtime Database само за сътрудничество в реално време.
Firebase Authentication е готово решение за удостоверяване на потребители. Firebase Auth поддържа имейл/парола, Google, Apple, Facebook, Twitter, GitHub, телефонно удостоверяване и анонимен вход. Целият процес на удостоверяване е имплементиран от страна на клиента чрез SDK.
Google Sign-In е един от най-популярните доставчици на удостоверяване. Интеграцията на Google Sign-In отнема 15–30 минути чрез Firebase Console и не изисква backend разработка. Потребителите влизат с едно кликване, използвайки своя Google акаунт.
Firebase Auth също така предоставя backend функции чрез Admin SDK. Можете да създавате потребители, да актуализирате профили, да управлявате сесии и да проверявате ID токени на сървъра. Интеграцията с Cloud Functions позволява създаване на персонализирани сценарии за удостоверяване.
Security Rules — механизмът за сигурност на Firebase за бази данни и хранилища. Правилата за достъп се описват декларативно и се проверяват при всяка заявка. Например: разрешаване на четене на документ само ако userId е равен на текущо удостоверения потребител.
Пример за просто Security Rule за Firestore:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
match /posts/{postId} {
allow read: if true;
allow write: if request.auth.uid == resource.data.authorId;
}
}
}
Firebase Cloud Messaging (FCM) е услуга за изпращане на push известия. FCM обработва до 500 милиарда съобщения дневно и поддържа iOS, Android и Web. Съобщенията се разделят на notification messages (автоматично показване) и data messages (обработка в приложението).
Firebase Remote Config позволява промяна на поведението на приложението без публикуване на нова версия. Remote Config се използва за A/B тестване, включване/изключване на функции, персонализиране на интерфейса и динамични промени на параметри (например честота на реклами, текст на paywall).
Firebase A/B Testing е инструмент за провеждане на експерименти. Създайте две версии на приложението с различни параметри и измерете влиянието върху метриките (конверсия, задържане, приходи). Тестовете автоматично изчисляват статистическата значимост и определят победителя.
Firebase Dynamic Links са интелигентни връзки, които водят потребителя до правилното място в приложението. Dynamic Links работят дори ако приложението не е инсталирано — в този случай водят до страницата на магазина, а след инсталиране възстановяват контекста и пренасочват към целевия екран.
IT Sectr използва комбинацията Remote Config + A/B Testing за оптимизиране на всички ключови сценарии: от екрана за добре дошли до платежния поток. Параметрите на Remote Config могат да се променят в реално време чрез Firebase Console — това осигурява гъвкавост, която не е налична при традиционните цикли на издаване.
Firebase Test Lab е облачно решение за автоматизирано тестване на приложения. Test Lab изпълнява вашите тестове на реални Google устройства в различни конфигурации (различни версии на ОС, разделителна способност на екрана, езици). Поддържа Espresso (Android), XCUITest (iOS) и Robo тестове.
Firebase App Distribution е платформа за разпространение на бета версии на приложения. App Distribution замества TestFlight за Android и го допълва за iOS. Можете да качвате APK/AAB и да получавате обратна връзка от тестери чрез интеграция с Crashlytics.
Комбинацията от Test Lab и App Distribution осигурява качество на всички етапи на разработка: от автоматизирани тестове на реални устройства до бета тестване с реални потребители. Интеграцията с CI/CD (GitHub Actions, Bitrise) прави процеса напълно автоматичен.
| Услуга | Предназначение | Безплатен лимит | iOS | Android | Web |
|---|---|---|---|---|---|
| Analytics | Събиране и анализ на потребителски събития | Неограничен | + | + | + |
| Crashlytics | Отчитане на сривове | Неограничен | + | + | - |
| Firestore | NoSQL база данни | 1 GB съхранение | + | + | + |
| Realtime DB | База данни в реално време | 1 GB съхранение | + | + | + |
| Auth | Удостоверяване на потребители | Неограничен | + | + | + |
| Cloud Messaging | Push известия | Неограничен | + | + | + |
| Remote Config | Управление на параметри | Неограничен | + | + | + |
| Performance | Наблюдение на производителността | Неограничен | + | + | + |
| Test Lab | Облачно тестване | 10 теста/ден | + | + | - |
| App Distribution | Разпространение на бета версии | Неограничен | + | + | - |
| Cloud Functions | Сървърен код при поискване | 2 милиона извиквания/месец | + | + | + |
Често задавани въпроси
Firebase има безплатен Spark Plan с щедри лимити — анализите, отчитането на сривове и удостоверяването са безплатни и неограничени. Blaze Plan (плащане според използването) е необходим при надвишаване на лимитите — например повече от 1 GB във Firestore или повече от 2 милиона извиквания на Cloud Functions. Повечето стартиращи компании не надвишават безплатните лимити през първите 1–2 години.
За повечето нови проекти се препоръчва Firestore. Firestore предлага по-добра мащабируемост, по-богати заявки и мулти-регион репликация. Realtime Database трябва да се избира само за прости сценарии в реално време (чатове с малки количества данни, игри в реално време).
Да, Firebase използва отворени протоколи и данните могат да бъдат експортирани. Firestore има управляван експорт към BigQuery и Google Cloud Storage. Удостоверяването може да бъде мигрирано чрез експортиране на хешове на пароли. Cloud Functions могат лесно да бъдат пренаписани на всеки backend framework.
Firebase използва многослойна защита: криптиране на транспортно ниво (TLS) и на ниво съхранение (AES-256). Security Rules предоставят декларативен контрол на достъпа. Firebase също така отговаря на стандартите SOC 1/2/3, ISO 27001 и GDPR.
Firebase работи ограничено в Китай поради блокиране на услугите на Google. За китайския пазар трябва да се използват местни алтернативи — например Alibaba Cloud Push вместо FCM или LeanCloud вместо Firebase. Firebase Analytics и Crashlytics също няма да бъдат достъпни без VPN.
Обобщение
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.