Гид по технологиям

Как подключить React к Firebase: пошаговое руководство

• 4 min read • Разработка • Обновлено 29 Nov 2025
React + Firebase: как подключить шаг за шагом
React + Firebase: как подключить шаг за шагом

Кратко

Firebase — это облачная платформа (BaaS), которая позволяет быстро добавить базу данных, аутентификацию и другие бэкенд‑сервисы в приложение на React без написания серверного кода. В этом руководстве вы установите пакет Firebase, зарегистрируете веб‑приложение в консоли Firebase, инициализируете SDK в React, протестируете запись данных в Cloud Firestore и получите практичные советы по безопасности и развертыванию.

React code in a code editor

Почему это полезно: по опросу Stack Overflow 2022 года 21.14% разработчиков используют Firebase; это удобный инструмент для быстрого прототипирования и масштабируемых приложений.

Основные шаги

  1. Установить пакет firebase в проект React.
  2. Создать проект в консоли Firebase и зарегистрировать веб‑приложение.
  3. Поместить конфигурацию в безопасное окружение (.env) и инициализировать Firebase в коде.
  4. Протестировать запись/чтение в Cloud Firestore.
  5. Настроить правила безопасности и, при необходимости, аутентификацию.

Установка пакета Firebase

После создания приложения React откройте терминал в корне проекта и выполните:

npm install firebase

Примечание: используйте npm или yarn в зависимости от того, что предпочитаете в проекте.

Добавление React‑приложения в проект Firebase

  1. Откройте консоль Firebase: https://console.firebase.google.com
  2. Нажмите «Добавить проект» (Add project) и следуйте шагам регистрации.

Firebase console home

  1. Введите имя проекта и продолжите.

Firebase project creation steps

  1. Дальше подтвердите параметры и завершите создание проекта.

Firebase create project step final

  1. После создания проекта нажмите «Продолжить в консоль».
  2. На странице проекта в верхней части найдите иконку веб‑приложения () и кликните её, чтобы зарегистрировать приложение для веба.

Firebase console add app web option

  1. Введите удобное имя приложения и нажмите “Register app” (Зарегистрировать приложение).

Firebase app registration phase

  1. Скопируйте сгенерированный блок конфигурации — он понадобится для инициализации SDK.
  2. В консоли выберите Cloud Firestore и создайте базу данных, следуя подсказкам (режим разработки или продакшен, выбор региона).

Firebase storage options

Database creation page Firestore

Firebase database creation menu

Важно: при создании Firestore обратите внимание на выбор региона — это влияет на задержки и стоимость.

Инициализация Firebase в React

Создайте папку src/firebase_setup и файл src/firebase_setup/firebase.js. Вставьте туда конфигурацию, которую получили в консоли.

Советы по секретам: не храните ключи в коде открыто. Для разработки можно использовать .env, а в продакшене — секретные хранилища CI/CD или секреты облачных платформ.

Пример: .env (локально)

REACT_APP_apiKey=yourFirebaseAccessKey
REACT_APP_authDomain=your-app.firebaseapp.com
REACT_APP_projectId=your-app-id
REACT_APP_storageBucket=your-app.appspot.com
REACT_APP_messagingSenderId=1234567890
REACT_APP_appId=1:1234567890:web:abcdef123456
REACT_APP_measurementId=G-XXXXXXX

После изменения .env перезапустите dev‑сервер React (npm start).

Пример кода инициализации (src/firebase_setup/firebase.js):

import { initializeApp } from "firebase/app";
import { getFirestore } from "@firebase/firestore";

const firebaseConfig = {
  apiKey: process.env.REACT_APP_apiKey,
  authDomain: process.env.REACT_APP_authDomain,
  projectId: process.env.REACT_APP_projectId,
  storageBucket: process.env.REACT_APP_storageBucket,
  messagingSenderId: process.env.REACT_APP_messagingSenderId,
  appId: process.env.REACT_APP_appId,
  measurementId: process.env.REACT_APP_measurementId
};

const app = initializeApp(firebaseConfig);
export const firestore = getFirestore(app);

Совет: используйте строгую типизацию (TypeScript) или JSDoc, если проект большой.

Тестирование подключения к Firestore

Создайте папку src/handles и файл src/handles/handlesubmit.js. В нём реализуйте простую функцию, которая добавляет документ в коллекцию test_data:

import { addDoc, collection } from "@firebase/firestore";
import { firestore } from "../firebase_setup/firebase";

const handleSubmit = async (testdata) => {
  const ref = collection(firestore, "test_data"); // коллекция создаётся автоматически

  const data = { testData: testdata, createdAt: Date.now() };

  try {
    await addDoc(ref, data);
    console.log('Документ успешно отправлен');
  } catch (err) {
    console.error(err);
  }
};

export default handleSubmit;

Использование в App.js:

import './App.css';
import handleSubmit from './handles/handlesubmit';
import { useRef } from 'react';

function App() {
  const dataRef = useRef();

  const submithandler = (e) => {
    e.preventDefault();
    handleSubmit(dataRef.current.value);
    dataRef.current.value = "";
  };

  return (
    
); } export default App;

Запустите приложение и отправьте данные через форму. Обновите консоль Firebase → Firestore, чтобы увидеть новую запись.

Безопасность и правила доступа

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

Пример базового правила (только авторизованные пользователи):

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Если вам нужна публичная коллекция для чтения, ограничьте права на запись.

Когда Firebase не подходит

  • Если требуются транзакции или сложные запросы на сервере, которых не реализовать в Firestore, стоит рассмотреть классический бэкенд.
  • Если проект должен строго соответствовать политике хранения данных региона (например, локальное законодательство), проверьте соответствие Firebase требованиям вашей юрисдикции.
  • Для малыми задержками на геораспределённой архитектуре может потребоваться отдельный сервер ближе к пользователям.

Альтернативные подходы

  • Backend-as-a-Service конкуренты: Supabase (Postgres‑совместимый), AWS Amplify, Appwrite.
  • Собственный бэкенд на Node.js/Go + база данных (Postgres, MongoDB) — даёт полный контроль над логикой и безопасностью.

Чек‑лист перед деплоем

  • Конфигурация вынесена в секреты CI/CD (не в .env в репозитории).
  • Firestore Rules настроены и протестированы.
  • Аутентификация настроена и протестирована (если требуется).
  • Лимиты чтений/записей и биллинг учтены.
  • Логи и мониторинг подключены (Crashlytics, Performance Monitoring при необходимости).

Мини‑методология быстрого прототипирования

  1. Зарегистрировать проект в консоли Firebase. 2. Подключить SDK к React. 3. Создать тестовую коллекцию и базовые правила. 4. Добавить аутентификацию (email/Google). 5. Перенести конфигурацию в секреты на CI/CD. 6. Провести нагрузочное тестирование и оценить стоимость.

Критерии приёмки

  • Приложение успешно записывает и читает документы из Firestore.
  • Правила Firestore не позволяют неавторизованным пользователям изменять данные (если это требование).
  • Конфигурация доступна в окружении сборки, секреты не в репозитории.

Короткий глоссарий

  • Firestore — NoSQL‑база данных от Firebase для хранения документов.
  • BaaS — Backend as a Service, облачные сервисы бэкенда.
  • SDK — набор библиотек для работы с сервисом.

Итог

Firebase + React позволяет быстро вывести прототип в продакшен: от хранения данных до аутентификации и аналитики. Для небольших и средних проектов это экономит время разработки, но требует внимания к правилам безопасности и вопросам хранения секретов.

Ключевые действия: установить firebase, зарегистрировать приложение в консоли, поместить конфигурацию в безопасные переменные окружения, инициализировать SDK и протестировать запись в Firestore.

Если нужно, я могу подготовить готовый шаблон репозитория (src‑структура, примеры правил Firestore, CI‑шаблон) под ваш стек.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро