Storage Plugins
Firebase Storage
Store your Hot Updater bundles in Firebase Cloud Storage.
Installation
npm install @hot-updater/firebase firebase-admin --save-devSetup
The easiest way to set up your backend is using the init command:
npx hot-updater initThis interactive command will guide you through the setup process. For details on what the init command does, see the Firebase documentation.
For manual configuration, use the settings below.
Configuration
interface FirebaseStorageConfig {
projectId: string; // Firebase project ID
storageBucket: string; // Storage bucket name
credential: admin.credential.Credential; // Firebase credential
basePath?: string; // Optional base path within bucket
}Environment Variables
Set up your Firebase credentials:
# Project Settings > Service Accounts > New Private Key > Download JSON
GOOGLE_APPLICATION_CREDENTIALS=/path/to/your-service-account-key.json
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_STORAGE_BUCKET=your-bucket-nameUsage
import { firebaseStorage } from '@hot-updater/firebase';
import * as admin from 'firebase-admin';
import { defineConfig } from 'hot-updater';
// https://firebase.google.com/docs/admin/setup?hl=en#initialize_the_sdk_in_non-google_environments
// Check your .env file and add the credentials
// Set the GOOGLE_APPLICATION_CREDENTIALS environment variable to your credentials file path
// Example: GOOGLE_APPLICATION_CREDENTIALS=./firebase-adminsdk-credentials.json
const credential = admin.credential.applicationDefault();
export default defineConfig({
storage: firebaseStorage({
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
credential
}),
// ... other config
});Protocol
gs://
This prefix is stored in the storageUri field in the database.
Profiles
firebaseStorage implements both storage profiles:
node: uploads, deletes, and downloads local files during CLI/console workflows.runtime: creates Firebase download URLs and reads small metadata files directly through Cloud Storage APIs.
For Firebase Functions runtimes, use the runtime-specific storage export so the server can resolve downloads and read manifests from the configured bucket.