Моя главная цель на год состояла в том, чтобы стать лучшим и довольно опытным разработчиком программного обеспечения; цель, которая возродила некоторые тлеющие угли. Еще в январе 2022 года я начал свой поиск и подключился к программе ускорения разработки программного обеспечения (SEPA), предлагаемой школой Jenga. На протяжении всей программы мы участвовали в нескольких проектах, которые были довольно сложными, но в то же время полезными.

В нашем третьем спринте каждый человек должен был разработать музыкальное веб-приложение, которое позволило бы пользователям транслировать музыку онлайн, а также загружать свою музыку. Для выполнения требований проекта каждый разработчик программного обеспечения должен был использовать Firebase в качестве серверной службы и HTML, CSS и JavaScript во внешнем интерфейсе.

Мой опыт работы с Firebase

Это был мой первый раз, когда я использовал firebase, и я могу засвидетельствовать, что это действительно полезно при разработке прототипов приложений. Самое лучшее в Firebase — это то, что вам не нужно управлять серверами. Вам не нужно писать API. Firebase — это ваш сервер, ваш API и ваше хранилище данных, написанные настолько обобщенно, что вы можете модифицировать их в соответствии с большинством потребностей. Вот некоторые из функций Firebase, которые пригодились при разработке моего веб-приложения.

1. База данных в реальном времени

В то время как большинство баз данных требуют, чтобы вы делали вызовы HTTP для получения и синхронизации ваших данных, у Firebase есть настоящая база данных, поскольку она использует WebSockets. Большинство баз данных предоставляют вам данные только тогда, когда вы их запрашиваете, но с Firebase вам не нужно делать отдельные вызовы WebSocket.

Все ваши данные синхронизируются «автоматически» через этот единственный веб-сокет так быстро, как сеть вашего клиента может их передавать. Firebase синхронизирует приложение с обновленными данными. Любое изменение данных немедленно отражается на приложениях. Сервис предоставляет разработчикам приложений API, который позволяет синхронизировать данные приложений между клиентами и хранить их в облаке Firebase.

Firebase предоставляет клиентские библиотеки, которые обеспечивают интеграцию с приложениями Android, iOS, JavaScript, Java, Objective-C, swift и Node.js. База данных также доступна через REST API и привязки для нескольких фреймворков JavaScript, таких как AngularJS, React, Ember.js и Backbone.js.

2. Хранение

Firebase хранит данные в двоичной форме, особенно это полезно для медиафайлов (изображения и аудиофайлы были основными медиафайлами для моего веб-приложения). Firebase Storage имеет свою систему правил безопасности для защиты вашей корзины GCloud от масс, предоставляя подробные права записи вашим аутентифицированным клиентам.

3. Аутентификация

Одной из лучших особенностей Firebase является то, что у него есть собственная система аутентификации по электронной почте и паролю. Он также поддерживает другие режимы аутентификации, такие как OAuth2 для Google, Facebook, Twitter и GitHub. Он включает в себя систему управления пользователями, с помощью которой разработчики могут включить аутентификацию пользователей с помощью электронной почты и пароля, сохраненных в Firebase.

Если вы когда-либо писали систему аутентификации, давайте на минутку посочувствуем. Пользовательская аутентификация имеет тенденцию быть ужасной время от времени и отнимать много времени. Я, возможно, никогда больше не напишу систему авторизации, пока я жив. Я влюбился в Firebase Auth с первого взгляда; Я считаю свои благословения.

Важным моментом является то, что Firebase Auth интегрируется непосредственно в базу данных Firebase, поэтому вы можете использовать его для управления доступом к своим данным. Например, в моем веб-приложении каждый может слушать загруженную музыку, но только авторизованные пользователи могут загружать музыку на платформу. Кроме того, каждый аутентифицированный пользователь может редактировать или удалять музыку, которую он загрузил.

4. Хостинг

Firebase предлагает услуги статического и динамического веб-хостинга. Он поддерживает размещение статических файлов, таких как CSS, HTML, JavaScript и другие файлы, а также динамическую поддержку Node.js через облачные функции. Мое музыкальное приложение в настоящее время работает и размещено на Firebase. Не стесняйтесь взглянуть на него — https://groove-hits.web.app/play.html

Просто краткий обзор, вот краткий обзор плюсов и минусов Firebase

Плюсы

  • Электронная почта и пароль, аутентификация Google, Facebook и GitHub
  • Данные в реальном времени
  • Готовый API
  • Встроенная безопасность на уровне узла данных
  • Хранилище файлов с поддержкой Google Cloud Storage
  • Хостинг статических файлов
  • Обрабатывайте данные как потоки для создания масштабируемых приложений.

Минусы

  • Ограниченные возможности запросов из-за модели потоков данных Firebase.
  • Традиционные реляционные модели данных не применяются к базам данных NoSQL, поэтому ваши SQL-запросы не будут переданы.
  • Нет локальной установки

Заключение

В заключение, мой проект веб-приложения весьма далек от завершения в соответствии с тем, что я имею в виду. Обновления будут выпущены, поэтому следите за изменениями. Некоторые из них включают адаптивность к мобильным устройствам, реструктуризацию пользовательского интерфейса/UX и возможность пользователей создавать списки воспроизведения и добавлять музыку в списки воспроизведения.

Если у кого-то есть интерес к Firebase, его довольно легко изучить и использовать в ваших будущих проектах.

Веб-сайт Groove Hits — — https://groove-hits.web.app/play.html

Groove попадает в репозиторий GitHub — https://github.com/mainakimani/Groove