Предварительные требования: React и реактивные формы

Что такое Firebase?

Firebase — это мощный внутренний инструмент, предоставляемый облачной платформой Google, который позволяет вам сосредоточиться на интерфейсе пользователя. Через Firebase устраняется необходимость в HTTP-запросах, поскольку мы подключаемся через одно соединение через веб-сокет. Когда пользователь взаимодействует с приложением (сохранение, удаление, добавление данных), изменения загружаются автоматически, и все клиенты, подключенные к приложению, мгновенно получают обновленную информацию. Это известно как база данных реального времени. Но где хранятся данные, спросите вы? Что ж, Firebase позаботится и об этом! Он предоставляет разработчику базу данных, размещенную в облаке.

Firebase делает намного больше; загляните в документацию Firebase, чтобы узнать больше!



Теперь давайте немного погрузимся в React.js.

Мы собираемся быстро настроить приложение для реагирования с помощью create-react-app.

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

npm install -g create-react-app (globally installed)
create react-app name-of-your-app, for this tutorial, i will be calling mine ‘form’.
cd into the folder and yarn add firebase — — dev. This saves firebase as a dev dependency.
yarn start to view the app in the browser.

Теперь перейдем к настройке firebase.

Перейдите в firebase по следующей ссылке:



Войдите в свою учетную запись Google и нажмите «Добавить проект».

Введите название своего проекта и нажмите «Создать проект».

Затем нам будет предложено выбрать тип проекта, в который мы хотели бы добавить Firebase. Учитывая, что мы создаем веб-приложение, мы нажмем «Добавить Firebase в ваше веб-приложение».

Затем нам дается фрагмент для добавления в наш HTML-файл (потому что именно там обрабатываются сценарии), из которого мы будем использовать только объект конфигурации и игнорировать тег script, поскольку мы импортируем Firebase в наше приложение.

Скопированный код должен выглядеть так:

var config = {
    apiKey: <API-KEY>,
    authDomain: "form-36d39.firebaseapp.com",
    databaseURL: "https://form-36d39.firebaseio.com",
    projectId: "form-36d39",
    storageBucket: "form-36d39.appspot.com",
    messagingSenderId: "681292822974"
  };
  firebase.initializeApp(config);

Затем мы продолжим и создадим новый файл в папке src с именем «firebase.js» и скопируем этот фрагмент кода в этот файл. Мы также импортируем firebase, а также экспортируем firebase по умолчанию.

import firebase from 'firebase';
var config = {
apiKey: "<API-KEY>",
authDomain: "f<PRPJECT-NAME>.firebaseapp.com",
databaseURL: "https://<PROJECT-NAME>.firebaseio.com",
projectId: "<PROJ-ID>",
storageBucket: "<PROJECT-ID>.appspot.com",
messagingSenderId: "681292822974"
};
firebase.initializeApp(config);
export default firebase;

Теперь мы добавили firebase в наше приложение! Достаточно просто, не так ли?

Теперь, прежде чем мы двинемся дальше, давайте изменим настройки аутентификации, временно полностью исключив аутентификацию (в целях обучения).

В левой части веб-сайта Firebase нажмите база данных, а затем в разделе База данных в реальном времени нажмите Начать работу. Оттуда перейдите на вкладку rules и внутри измените настройки на:

{
  "rules": {
    ".read": "true ",
    ".write": "true"
  }

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

…а затем нажмите Опубликовать!

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

Переходим к форме…

Перейдите к файлу App.js в папке src.

Я создал небольшую форму, которую вы можете использовать…

И некоторые стили, которые вы можете скопировать в index.css

В файле App.js удалите импорт логотипа из строки «./logo.svg» и вместо этого импортируйте firebase из строки «./firebase.js».

Прежде чем мы сможем начать сохранять наши задачи в базе данных, нам нужно внести некоторые изменения в метод handleSubmit.

Сначала мы добавляем эту строку:

const taskRef = firebase.database().ref(“tasks”);

Вызов метода ref создает в базе данных место для хранения информации. Мы называем это пространство «задачами». Метод ref используется для чтения/записи в базу данных firebase.

const task = {
  date: this.state.date,
  task: this.state.task
}

Затем мы получаем нужную информацию из состояния, чтобы отправить ее в базу данных, и сохранить ее в объекте.

taskRef.push(task)

Приведенный выше код отправит задачу в базу данных, а приведенный ниже код сбросит состояние.

this.setState({
  date: "",
  task: []
})

Окончательный код в нашем App.js должен быть похож на этот:

Теперь попробуйте отправить задачу!

Если мы проверим консоль firebase, мы должны увидеть что-то вроде этого:

Ключи автоматически генерируются Firebase, но если вы развернете представление, вы увидите, что Firebase хранит задачи, и они хранятся в виде пар ключ-значение.

И это все! Мы только что создали небольшое приложение, в котором хранятся все наши данные без использования бэкэнда!

Надеюсь, вам понравился этот урок.