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

Почему это полезно: по опросу Stack Overflow 2022 года 21.14% разработчиков используют Firebase; это удобный инструмент для быстрого прототипирования и масштабируемых приложений.
Основные шаги
- Установить пакет firebase в проект React.
- Создать проект в консоли Firebase и зарегистрировать веб‑приложение.
- Поместить конфигурацию в безопасное окружение (.env) и инициализировать Firebase в коде.
- Протестировать запись/чтение в Cloud Firestore.
- Настроить правила безопасности и, при необходимости, аутентификацию.
Установка пакета Firebase
После создания приложения React откройте терминал в корне проекта и выполните:
npm install firebaseПримечание: используйте npm или yarn в зависимости от того, что предпочитаете в проекте.
Добавление React‑приложения в проект Firebase
- Откройте консоль Firebase: https://console.firebase.google.com
- Нажмите «Добавить проект» (Add project) и следуйте шагам регистрации.
- Введите имя проекта и продолжите.
- Дальше подтвердите параметры и завершите создание проекта.
- После создания проекта нажмите «Продолжить в консоль».
- На странице проекта в верхней части найдите иконку веб‑приложения (>) и кликните её, чтобы зарегистрировать приложение для веба.
- Введите удобное имя приложения и нажмите “Register app” (Зарегистрировать приложение).
- Скопируйте сгенерированный блок конфигурации — он понадобится для инициализации SDK.
- В консоли выберите Cloud Firestore и создайте базу данных, следуя подсказкам (режим разработки или продакшен, выбор региона).
Важно: при создании 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 при необходимости).
Мини‑методология быстрого прототипирования
- Зарегистрировать проект в консоли 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‑шаблон) под ваш стек.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента