Питання: Але це також означає, що мені доведеться розміщувати бізнес-логіку в передній частині, у веб-додатку Angular2, правда ?
Так. Якщо він не підтримується сервером, бізнес має бути десь реалізований.
Після придбання Google Firebase перетворилася на платформу для розробників мобільних додатків, які не могли дозволити собі (або не потребують) розгортання власного сервера. Хоча більшість сервісів є досить поперечними: зберігання, логін, аналітика та послуга повідомлень, правда, що вони також надають хмарні функції (на зразок лямбда), які можуть бути використані для виконання деяких бізнес-правил. Однак для корпоративних програм або великих додатків зі складною доменною та діловою логікою такий тип підтримки не вистачає.
Отже, як ви здогадуєтесь, Firebase не звільняє нас від того, що ми проводимо бекенд, присвячений розміщенню та виконанню бізнес-операцій.
З: Отже, якщо я колись у майбутньому мені хотілося б зробити мобільний додаток переднім, мені доведеться дублювати бізнес-логічний код?
Не обов'язково. Якщо веб-додаток побудовано на Angular, крос-платформи на зразок NativeScript можуть дозволити вам повторно використовувати веб-компоненти, бібліотеки, утиліти, моделі тощо. Я не заглиблювався в тему, тому не можу запевнити вас у повній сумісності. Ключ лежить на TypeScript , як Angular, так і NativeScript, вимагає від нас кодування на TS.
Тоді питання полягає в тому, де розмістити Javascript для його розповсюдження та версії . Слово CDN .
З: Я думаю, альтернативою було б створити бекенд, який містить бізнес-логіку і використовує Firebase для зберігання даних, але це здається трохи дивним (я не міг просто використовувати ORM або щось безпосередньо у своєму бекенде, щоб досягти того самого результат без значно більшої роботи?)
Деякі міркування.
З одного боку, хостинг, розгортання, управління та підтримка бази даних - це не мало. Не кажучи вже про безпеку роботи, масштабованість, доступність тощо. Тому цікаво мати постачальника баз даних, який доглядає за цими речами. Не божевільна ідея в наші дні база даних десь на хмарі. Звичайно, я б не пропонував цього зробити, якби ми впроваджували проміжне програмне забезпечення та резервні програми для банку. Але це може мати сенс для сеансу клієнта, профілів користувача, налаштувань і такого роду даних, які зазвичай перебувають на стороні клієнта або даних, які нам не цікаві.
З іншого боку, мати нашу задню частину корисно з простої причини, роз'єднання .
Замість того, щоб зв'язувати наших клієнтів із усіма видами послуг, якими ми не керуємо та не керуємо, ми розгортаємо серверну програму, з якої ми доглядаємо за цими речами, так що нашим клієнтам не потрібно хвилюватися з питань, таких як вимкнення послуг чи порушення роботи. зміни. Окрім того, ми отримуємо перевагу від простоти, оскільки наш бек-енд працює як фасад.
Питання: Як люди зазвичай структурують такі програми, якщо вони хочуть, наприклад, використовувати Firebase?
Він значно варіюється від проекту до проекту. Наприклад, ми використовуємо Firebase + бек-енд.
БД Firebase для обміну даними між пристроями-обліковими записами-сеансами . Також як журнал змін, коли наш сервер часу тимчасово недоступний, клієнти надсилають операції запису в журнал, який синхронізується пізніше.
Хмарні повідомлення Firebase надають нам сповіщення та теми, що надходять за течією та за течією. Ми використовуємо послугу для обміну повідомленнями pub / sub.
Аналітика Firebase Основно для показників.
Бек-енд для всього, що суворо пов'язане з бізнесом