Firebase як бекенд для будь-яких застосунків, та як використовувати Firebase-сервіси
Привіт, мене звати Вадим Фрунза, я Flutter Developer в ІТ-компанії Customertimes. Я працюю розробником останні 3 роки, як кросплатформний розробник на Flutter.
Час від часу при розробці нового проєкту стикаєшся з тим, що маєш обрати певний бекенд. Ти починаєш шукати можливі рішення чи повноцінний окремий бекенд з сервером, а, можливо, навіть думаєш використати вже готові платформи.
Саме тому сьогодні я розповім про чудове рішення для Flutter та будь-яких мобільних чи вебзастосунків — Firebase-сервіси, які можуть підтримувати бекенд застосунку.
Цей матеріал буде корисний для тих, хто щось чув про Firebase або дотичні сервіси, але особливо не заглиблювався в це. А, може, ви взагалі не маєте уявлення, що це таке і який функціонал має. Тоді ця стаття для вас буде також корисною!
Disclaimer: текст не містить інструкцій з підключення Firebase до програми Flutter. Якщо вам потрібні ці дані, ви знайдете їх тут.
Що таке Firebase
Firebase була розроблена компанією Google як платформа для Backend-as-a-Service (BaaS). Вона пропонує розробникам інструменти та сервіси, необхідні для створення та підтримки бекенду їхніх застосунків. Послуги включають хостинг, автентифікацію користувачів, базу даних в режимі реального часу та інші функції.
Так чому ж варто використовувати Firebase? Як розробника Flutter мене вражає в Firebase те, наскільки легко її можна використовувати та встановлювати.
База даних Firebase (Firestore або Realtime Database) — це база даних NoSQL, завдяки чому вона дуже зручна для користувача. На відміну від SQL, де таблиці і рядки є нормою, бази даних NoSQL на кшталт Firebase використовують колекції зі списком документів без таблиць.
Firebase можна використовувати для обробки авторизації, сповіщень, зберігання файлів та інших речей, які можуть знадобитися вашим застосункам. А оскільки Google часто оновлює Firebase, нові функції завжди доступні. Крім того, консоль Firebase має гарний дизайн і робить взаємодію між Firebase Console та застосунком дуже простою.
Сервіси Firebase
Firebase має багато сервісів та рішень, зокрема Cloud Firestore, Realtime Database, Firebase Authentication, Cloud Storage, Cloud Messaging, навіть Firebase Machine Learning тощо. Нижче я поясню переваги деяких з основних сервісів:
Database
Кожному застосунку потрібна база даних. Для цього Firebase пропонує Cloud Firestore та Realtime Database. Обидві є базами даних NoSQL, але Cloud Firestore є переробленою та покращеною версією Realtime Database.
Основні відмінності між Cloud Firestore і Realtime Database полягають у моделі даних та масштабованості:
Cloud Firestore використовується частіше, тому що вона працює у більшій кількості випадків. Ось як виглядає база даних на платформі Firebase:
База даних має чимало цікавих функцій, наприклад, конструктор запитів. Використовуйте його для пошуку за певними критеріями:
Firebase також пропонує функцію сховища, де можна зберігати файли та керувати ними. Я рекомендую управляти файлами у ньому так само, як ви керуєте даними в базі даних: зберігайте файли за допомогою прямого маршруту до відповідного елемента в базі даних, коли це необхідно.
Cloud Functions
Якщо ви хочете виконати якусь логіку за межами програми (можливо, з міркувань безпеки або просто тому, що не хочете зберігати цю логіку у файлах програми), у Firebase є рішення під назвою Cloud Functions. Воно дозволяє виконувати логіку у хмарі, тому ви зможете запускати код мобільного бекенду без керування серверами.
Cloud Functions використовує JavaScript-код, який виконується у середовищі Node.js. Ось приклад. Ця функція надсилає пуш-сповіщення, коли реєструється новий користувач:
Ще один приклад: оновлення даних у Firestore, коли новий файл завантажується до сховища Firebase Storage:
Firebase Auth
Багато програм потребують функції авторизації, для чого можна використовувати Firebase Auth. Це безпечний і простий у використанні сервіс автентифікації, який підтримує безліч платформ та може бути інтегрований з іншими службами Firebase для плавної роботи та бездоганного UX.
Підключити його до програми дуже просто, використовуючи лише кілька рядків коду.
Безпека
У вашому застосунку має бути авторизація, яка дозволяє використовувати Cloud Firestore, оскільки Firebase має правила безпеки для кожної бази даних.
Це логіка, яка написана на платформі Firebase для захисту ваших даних. Її можна налаштовувати різними способами і вона повинна бути написана переважно синтаксисом JavaScript з деякими відмінностями.
Ось основне правило доступу до операцій читання та запису лише для авторизованих користувачів:
Ще однією безпековою функцією, яку варто розглянути, є рішення AppCheck.
AppCheck перевіряє автентичність запитів, зроблених до API, і служб Firebase. Це дозволяє розробникам визначати власні правила, щоб переконатися, що запити надходять з надійних джерел, а не від ботів чи інших автоматизованих систем, які можуть використовувати вразливості у вашій програмі.
AppCheck пропонує додатковий рівень захисту від зловмисних атак, щоб ваші програми були безпечними.
Інші корисні сервіси
У Firebase є багато рішень і сервісів, які можуть допомогти вам під час створення програми, але якщо я спробую перерахувати усі тут, це буде дуже довга стаття. Натомість я коротко опишу кілька моїх улюблених:
- Cloud Messaging — сервіс відправки пуш-повідомлень і повідомлень на мобільні пристрої та вебзастосунки;
- Machine Learning — набір інструментів для створення та розгортання моделей машинного навчання у хмарі;
- Firebase Extensions — готові модулі з можливістю налаштування, які можна додати до проєктів Firebase для автоматизації типових завдань;
- Remote Config — сервіс, що дозволяє розробникам віддалено налаштовувати поведінку свого застосунку, не вимагаючи нового релізу;
- Google Analytics — інструмент для відстеження поведінки користувачів та використання застосунку, включаючи залучення, зацікавлення та утримання користувачів;
- Performance Monitoring — сервіс, який допомагає розробникам виявляти та діагностувати проблеми з продуктивністю в їхніх програмах, зокрема повільні мережеві запити та збої.
*Примітка: користування деякими з цих послуг є платним. Дізнайтеся більше про ціни тут.
Висновок
Незалежно від того, створюєте ви просту програму для мобільних пристроїв чи складну вебпрограму, Firebase може надати необхідні інструменти та ресурси, які допоможуть вам досягти цілей розробки.
Це потужна універсальна платформа розробки зі зручним інтерфейсом, гнучкими цінами та простою інтеграцією з іншими службами Google, що робить її привабливою для розробників усіх рівнів знань.
Якщо ви створюєте застосунок, особливо з нуля, Firebase має інструменти, необхідні вам для створення, тестування та розгортання високоякісного продукту.
20 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів