на пристани
Мы прыгнули прямо в Firebase, когда Google объявил его в Google I/O в мае 2016 года.
Мы начинали одностраничное приложение React Application, необходимое для работы на мобильном телефоне через Cordova и Desktop Via Enel. Таким образом, Firebase казалась волшебным решением для нас.
Теперь, после 7 месяцев работы с Firebase почти ежедневно, я готов поделиться нашим опытом с ним.
Великий
Данные в реальном времени
Да, это круто. С небольшим количеством сантехники и некоторыми сердитомами связывания данных вы можете подключить свои представления с вашими данными, и они волшебны меняются при изменении данных.
В нашем опыте производительность была последовательно великолепна, хотя Firebase разработана с миллионами пользователей, поэтому мы даже не поцарапали поверхность зверя.
Наши пользователи все еще впечатлены тем, как быстро все работает.
Статический хостинг на стероидах
Хостинг Firebase поставляется с бесплатным CDN и SSL – все работает на платформе Google Cloud. Это означает, что у вас не должно быть проблем, обслуживающих файлы на любое количество пользователей по всему миру.
Если вы ищете хостинг нулевого конфигурации для вашего следующего одностраничного приложения или статического веб-сайта, я бы действительно рассмотрел Firebase в качестве опции, даже если вы не используете другие услуги Google.
Супер силы
Firebase также предоставляет вам ряд услуг и SDK, которые являются Super легко интегрировать, такие как:
- Аутентификация ОАУТ
- Файловое хранилище
- Резервные копии базы данных
- Автоматическое масштабирование
- CLI для развертывания и других обязанностей
- Свободный уровень
Мех
Консоль
Это красиво, и это позволяет делать ряд вещей, но это не что полезный.
Диспетчер базы данных действительно прославлен редактор JSON. Отлично подходит для того, что это такое, но это не полное непреклонное решение, которое я ожидал, что это будет. Если вы пришли из Workbench, Postico, Mongotron или даже Phpmyadmin, это придет как хорошая игрушка.
Еще одним очень ограничивающим аспектом консоли является отсутствие подробных журналов или аналитики. Учитывая это Google Google Мы говорим об этом, кажется причудливым. Уверен, что вы получите хороший график для использования базы данных, но нет способа узнать, сколько раз файл был загружен из хранилища, если вы не реализуете решение самостоятельно.
Неверный?
Firebase – это статический хостинг + API, ничего более. Это ограничение – это не конец света. Вы можете легко решить это, используя сервер Node.js в качестве другого клиента FireBase, который вы, скорее всего, нужно для многих общих задач, таких как создание миниатюр, отправляя электронные письма своим пользователям и т. Д.
Видимо, можно будет использовать Функции Google Cloud (Все еще в альфа) с Firebase но кто знает, когда. Может быть, это будет объявлено в Google I/O 2017.
(Отредактируйте мартов 2017 : FireBase только что объявил Google Cloud Function для Firebase )
( Редактировать май 2018 : Проверьте Мой обзор функций облаков FireBase Несомненно
Определение правил безопасности
Firebase использует файл JSON с кодом JavaScript в строках, чтобы определить правила по базе данных и хранении.
{ "rules": { "users": { "$uid": { ".write": "$uid === auth.uid" } } }}Это не так плохо, как звучит так, как вы можете использовать Болт сделать этот процесс менее болезненным. Хотя даже при использовании болта, как только вы выходите за пределы простых нескольких десятков правил, этот файл становится неизвестным итальянским Food ™.
Услуги, как Фабрика мечты и График Cool Дайте вам правильный инструмент для этого, не теряя своего здравоохранения.
Проприетарные технологии
Когда Facebook решил выключить анализ, многие проекты оказались в сложном положении. Я честно сомневаюсь, что это произойдет с Firebase, но я могу понять нежелание на пару твоего технологического стека с третьей сторонней платформой – As-A-Service.
Никто не способ разрабатывать локально
Если вы часто путешествуете или живу в стране с плохой связью, считаете, что вы не можете работать с локальной установкой. Вы не можете просто использовать Docker или Node и запустите свой API.
Уродливый
Ограниченный JavaScript SDK
Существует ряд функций в Firebase, которые реализованы только в их iOS и Android Sdks.
Самым ярким является отсутствие в автономном стойке при работе с JavaScript. Ваш веб-сайт, гибрид или реактивное применение продолжит работу, если устройство на мгновение теряет подключение. Но как только вы закроете приложение или вкладку, ваши данные будут уходить. Это зависит от вас, чтобы реализовать кеш с постоянством. Это действительно может быть серьезным усилением, особенно на мобильном.
JavaScript SDK даже не имеет способа кэшировать данные (не уверен в iOS или Android). Если вы загружаете /продукты А потом нужно, чтобы эти данные позже вам придется перезагрузить его, если вы не будете вручную не сохранить соединение на заднем плане. Это не сложно реализовать это, но опять же, почему нет Firebase не предоставляет волшебный способ сделать это?
Нет способа правильно запрашивать ваши данные
Вы можете сделать очень основную фильтрацию и пагинацию, но кроме того, вы самитесь.
Действительно? Google предоставляет услуги передачи данных без возможностей поиска или фильтрации?
Ага. Действительно.
Если вы хотите реализовать функциональность поиска, вам придется либо загрузить все данные, и выполнить ее в клиенте, используйте сервер, такой как я описал ранее, или реализовать третью сторону, как Эластичный Отказ
Разработчики Firebase сказали, что это по дизайну, поэтому они могут обеспечить высокую производительность. OK. Но почему бы не дать нам пользователям решить, можем ли мы позволить себе оплатить цену производительности для нашего использования?
Да, и забудьте о присоединениях или что-нибудь удаленно фантазируйте своими данными. Что приводит меня к …
Dumpment Modeling
Что он сказал.
База данных Firebase в основном только один огромный файл JSON. Там нет способа объявить один ко многим или Многие для многих отношения. На практике это означает, что вы в конечном итоге дублируете ваши данные по всему месту.
Сначала это не кажется таким плохим. В конце концов, удобно ставить имя пользователя в чате, нет?
{ "author":"Pepito Flores", "message":"I want a taco!", "time": 1484269756951}Проблема приходит, когда вы должны на самом деле редактировать имя Pepito, так как вам придется изменять его где угодно Вы использовали его и не только в /пользователи .
Рассказывая своим пользователям, что они не могут редактировать свое имя, обычно не является жизнеспособным вариантом, поэтому:
- Ваш клиентский код для записи и редактирования данных в Firebase станет во многих случаях итальянской Food ™.
- Документирование того, где вы продублировали, что ваши данные будут трудно сказать наименее.
Также так много баз данных NoSQL, таких как Монгодб или RETHINKDB Нашли пути вокруг этой проблемы, мне трудно поверить, что Google не может решить это по крайней мере разумной производительностью.
TL; доктор
Firebase является потрясающим для простых проектов или разработка небольших функций, которые требуют данные в реальном времени. Например, чат или система уведомлений. Это впечатляющие 30 минут демонстрации, которые вы видите на YouTube. Это также очень хорошо работает, если ваши данные являются потоками вещи С простой структурой, такой как услуга для онлайн-многопользовательской игры.
Что-нибудь с более сложным требованием к данным становится сложно или даже невозможным с Firebase. Обычный Беги мельницы Запросы баз данных в большинстве случаев являются более ценными, чем данные в реальном времени, а как впечатляющие, как видящаяся лита, вы, вероятно, не нуждаетесь в этом.
Как и все, выберите нужный инструмент для работы.
Дополнение: какая пожарная машина должна быть потрясающей
- Настоящие возможности запросов. Поиск, присоединения, всю энчилада.
- Некоторые ссылки любит mongodb или Rethinkdb.
- Настоящий офлайн настойчивость с JavaScript.
- Дайте мне моар аналитика.
- API кэша.
Это все.
Приложение 2.: Moar Info.
Если вы читаете это, вы можете оценить Firebase как разработчик или CTO. Вот некоторые другие статьи, которые могут помочь вам решить, может ли Firebase работать для вас, и стоит ли инвестировать дополнительное время для оценки.
Firebase: Хороший, плохой и уродливый – Raizexception – Raizlabs Developer Blog В рамках нашей работы в качестве разработчиков программного обеспечения в RaizLabs мы постоянно оцениваем новейшие инструменты разработки … www.raizlabs.com Причины не использовать FireBase Создание приложений в реальном времени – это стандарт сегодня. На хрустящих, мы использовали Firebase в производстве более 9 месяцев, начиная с … crisp.im
Оригинал: “https://www.freecodecamp.org/news/firebase-the-great-the-meh-and-the-ugly-a07252fbcf15/”