@vibe-rtc/rtc-firebase
v0.1.0
Published
Firebase/Firestore signaling adapter for `@vibe-rtc/rtc-core`.
Readme
@vibe-rtc/rtc-firebase
Firebase/Firestore signaling adapter for @vibe-rtc/rtc-core.
Install
pnpm add @vibe-rtc/rtc-firebaseExports
FBAdapter:SignalDBimplementation on FirestoreensureFirebase(config): initializes app/auth/firestore and signs in anonymously@vibe-rtc/rtc-firebase/node: Node-only env config helpers (loadFirebaseConfig,cfgFromProcessEnv)
Quick Example
import { RTCSignaler } from '@vibe-rtc/rtc-core'
import { FBAdapter, ensureFirebase } from '@vibe-rtc/rtc-firebase'
const { db, auth } = await ensureFirebase({
apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID,
appId: import.meta.env.VITE_FIREBASE_APP_ID,
})
const signalDb = new FBAdapter(db, auth)
const rtc = new RTCSignaler('caller', signalDb)Environment Variables
For cfgFromProcessEnv / loadFirebaseConfig (from @vibe-rtc/rtc-firebase/node) default prefix VITE_:
VITE_FIREBASE_API_KEYVITE_FIREBASE_PROJECT_IDVITE_FIREBASE_APP_IDVITE_FIREBASE_MESSAGING_SENDER_ID(optional)
Firestore Rules
Rules live in this package:
firestore.rulesfirestore.indexes.jsonfirebase.json
Deploy rules:
pnpm --filter @vibe-rtc/rtc-firebase run rules:deployFor CI/non-interactive deployment:
pnpm --filter @vibe-rtc/rtc-firebase run rules:deploy:ciUse FIREBASE_PROJECT_ID to target non-default project.
Development
pnpm --filter @vibe-rtc/rtc-firebase build
pnpm --filter @vibe-rtc/rtc-firebase test
pnpm --filter @vibe-rtc/rtc-firebase emulator