Интегрируйте Firebase SDK с вашим веб-приложением.

Firebase App Hosting идеально подходит для динамических веб-приложений, созданных с использованием Firebase JavaScript SDK и Firebase Admin SDK для Node.js. В полнофункциональном веб-приложении такие Firebase SDK, как Authentication , Cloud Firestore и App Check играют важную роль. В этом руководстве описаны некоторые ключевые стратегии, которые помогут оптимизировать Firebase SDK и начать интеграцию Firebase в ваше веб-приложение на Firebase App Hosting .

Автоматическая инициализация Firebase Admin SDK и веб-SDK

Среды Google, такие как Firebase App Hosting обеспечивают упрощенную инициализацию приложений посредством вызова конструктора без аргументов во время сборки и выполнения. Эта функция доступна как в Firebase Admin SDK для Node.js (серверном SDK, который открывает доступ к широкому спектру функций Firebase и может быть очень полезен в вашем веб-приложении), так и в Firebase JavaScript SDK .

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

Инициализировать без аргументов

Чтобы инициализировать Firebase JavaScript SDK или Firebase Admin SDK со значениями конфигурации по умолчанию, используйте initializeApp() без предоставления каких-либо аргументов:

Admin SDK

import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();

JavaScript SDK

import { initializeApp } from 'firebase/app';
const app = initializeApp();

Эта стратегия инициализации Admin SDK работает как в App Hosting , так и в других серверных средах Google, включая Cloud Run, App Engine и Cloud Functions. Для JavaScript SDK эта стратегия работает в App Hosting .

Переопределить автоматически заполненные значения

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

Переопределение Admin SDK

Чтобы указать дополнительные параметры инициализации для таких сервисов, как Realtime Database, Cloud Storage или Cloud Functions, используйте переменную окружения FIREBASE_CONFIG . Если содержимое переменной FIREBASE_CONFIG начинается с символа { , оно будет интерпретировано как JSON-объект. В противном случае SDK предполагает, что строка представляет собой путь к JSON-файлу, содержащему параметры.

# apphosting.yaml

env:
  - variable: FIREBASE_CONFIG
    value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'

Переопределение JavaScript SDK

Чтобы переопределить значения FIREBASE_WEBAPP_CONFIG по умолчанию, которые App Hosting внедряет для инициализации JavaScript SDK, вы можете указать значения в apphosting.yaml :

# apphosting.yaml

env:
  - variable: FIREBASE_WEBAPP_CONFIG
    value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'

Использование автоматической инициализации в других средах

Автоматическая инициализация настраивается с помощью скрипта npm postinstall при установке Firebase JavaScript SDK. Скрипт postinstall ищет переменную окружения FIREBASE_WEBAPP_CONFIG , которая автоматически задаётся в среде App Hosting Cloud Build.

Если вы устанавливаете JS SDK вне Cloud Build, вам потребуется самостоятельно задать эту переменную среды при установке Firebase JavaScript SDK.

Чтобы настроить среду вручную при установке:

  1. Скопируйте объект конфигурации веб-приложения Firebase из консоли Firebase.

  2. В терминале задайте переменную среды FIREBASE_WEBAPP_CONFIG перед запуском команды npm install .

FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase

Каждый раз при изменении проекта Firebase или веб-приложения повторно запускайте эту команду.

Используйте FirebaseServerApp для SSR

Если вы работали с Firebase JS SDK или другими клиентскими SDK Firebase при разработке веб-приложения, вы, вероятно, знакомы с интерфейсом FirebaseApp и тем, как его использовать для настройки экземпляров приложения. Для упрощения аналогичных операций на стороне сервера Firebase предоставляет FirebaseServerApp .

FirebaseServerApp — это вариант FirebaseApp для использования в средах серверного рендеринга (SSR). Он включает в себя инструменты для продолжения сеансов Firebase, охватывающих как клиентский (CSR), так и серверный рендеринг.

Используйте FirebaseServerApp для:

  • Выполнять серверный код в контексте пользователя , в отличие от Firebase Admin SDK , который имеет полные права администратора.
  • Включить использование App Check в средах SSR.
  • Продолжить сеанс аутентификации Firebase, созданный в клиенте.

Полную информацию об использовании FirebaseServerApp для этих целей см. в разделе Использование Firebase в динамических веб-приложениях с SSR .

Включите App Check в вашем веб-приложении

Вы можете использовать App Check для повышения безопасности своего динамического веб-приложения на App Hosting . Реализовав некоторые из конкретных стратегий на стороне сервера, описанных в статье «Использование Firebase в динамических веб-приложениях с SSR» , вы можете защитить бэкенд App Hosting от злоупотреблений.