вступление

У меня есть очень специфическая проблема, которую я пытаюсь решить с помощью программного обеспечения. Если вы читали Семь привычек высокоэффективных людей, могу организовать свою неделю в соответствии с третьей привычкой. Я сделаю пост, как только у меня будет что-то с наиболее важными функциями, чтобы вы могли попробовать.

Первоначально предполагалось, что это будет приложение, которое будет обслуживаться статическим сервером и постоянно находиться на клиенте.

После того, как я сделал большую часть приложения и начал изучать GraphQL. Это заставило меня понять, что я мог бы получить от него больше пользы, если бы я мог связать его со своей учетной записью Google и получить доступ к своим данным с любого устройства.

Вероятно, это должно быть очевидно для большинства людей, но не для меня.

Меньше - больше

Я работаю фронтенд-разработчиком, поэтому мне не хотелось настраивать сервер, контейнеры Docker, микросервисы и все те функции, которые делают приложение достаточно безопасным, сверхпроизводительным, масштабируемым и т. д.

Как я уже говорил во вступлении, это личный проект. Поэтому я решил попробовать хостинг и серверную часть Firebase как услугу для хостинга,

  • Хостинг. Firebase.
  • База данных в реальном времени. Firebase.
  • Управление пользователями, просто войдите в систему с помощью Google. Электронной почты и пароля нет.
  • GraphQL. Firebase. Мне просто нужна установка без сервера с некоторыми функциями и NodeJS.

Начните с конца в виду

Я провел один день после изучения документации, пытаясь подключить эту библиотеку, чтобы заставить Firebase, React и Redux работать вместе. Это была цель, верно?

Я закончил с большим беспорядком. Я начал тщательно просматривать свой код, проблемы были:

  • Я внедрил reducer с утраченными функциями, которые не нужны и не используются.
  • Я дважды инициализировал свое приложение.
  • По какой-то причине я пытался сослаться на инициализацию приложения, чтобы получить аутентификацию.
  • Я запускал react-redux-firebase геттеры со своими сагами, не нуждаясь в них.

Я начал задаваться вопросом А нужно ли мне это вообще?, Зачем?.

Делайте одно дело за раз

Я неплохо разбираюсь в react, redux, redux-saga, react-router и т. д. Есть много мелких деталей, играющих вместе. По большей части вы начинаете с малого и добавляете каждую функцию по мере необходимости.

Я делал это раньше, несколько раз. Я действительно понимаю основы и то, что делает каждая часть.

Как вы уже поняли, Firebase предлагает множество решений. Проблема заключалась в том, что я нашел библиотеку, похожую на то, что искал, и
попытался реализовать их все сразу.

Библиотека react-redux-firebase, в конце концов я обнаружил, что она мне даже не нужна.

Простота всегда лучше

Разочарованный и любопытный, после просмотра нескольких источников. Я решил удалить все вещи, которые мне не нужны, а затем по одной вещи за раз. Это было проще и легче, чем я ожидал. Вот список вещей, которые мне нужно сделать по порядку:

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

Вывод

Для тех, кто разбирается в компонентах высокого порядка, JWT, генераторах ES6 и наблюдаемых объектах. Это забавное положение.

Вещи легче объяснить, когда вы их понимаете. Всегда можно узнать что-то новое, и, несмотря на первоначальное разочарование, это был отличный опыт обучения.

Если вы хотите, чтобы я написал пост с пошаговым руководством о том, как делать то, что я описываю в этом посте, дайте мне знать.

Дополнительные ресурсы