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
Чтобы при необходимости указать пользовательские параметры инициализации для таких служб, как база данных реального времени, облачное хранилище или облачные функции, используйте переменную среды 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 при установке Firebase JavaScript SDK. Сценарий после установки ищет переменную среды FIREBASE_WEBAPP_CONFIG
, которая автоматически задается в среде облачной сборки App Hosting .
Если вы устанавливаете JS SDK вне Cloud Build, например локально для использования с пакетом эмуляторов Firebase, вам нужно будет установить эту переменную среды самостоятельно при установке Firebase JavaScript SDK.
Чтобы настроить среду вручную при установке:
Скопируйте объект конфигурации веб-приложения Firebase из консоли Firebase.
В терминале установите переменную среды
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 от злоупотреблений.