Skip to main content
Glama
firebase
by firebase
README.md2.6 kB
# Firebase plugin for Genkit See the official documentation for more: - [Deploying Genkit with Firebase](https://genkit.dev/docs/deployment/firebase/) - [Genkit monitoring with Firebase](https://genkit.dev/docs/observability/getting-started/) ## Installing the plugin ```bash npm i --save @genkit-ai/firebase ``` ## Using the plugin ```ts import { genkit } from 'genkit'; import { enableFirebaseTelemetry } from '@genkit-ai/firebase'; enableFirebaseTelemetry(); const ai = genkit({ plugins: [ // ... ], }); ``` ## Durable Streaming (Beta) This plugin provides two `StreamManager` implementations for durable streaming: * `FirestoreStreamManager`: Persists stream state in Google Firestore. * `RtdbStreamManager`: Persists stream state in the Firebase Realtime Database. You can use these with `expressHandler` or `appRoute` to make your flow streams durable. ### Usage To use a stream manager, import it from `@genkit-ai/firebase/beta` and provide it to your flow handler: ```ts import { expressHandler } from '@genkit-ai/express'; import { FirestoreStreamManager } from '@genkit-ai/firebase/beta'; import express from 'express'; import { initializeApp } from 'firebase-admin/app'; import { getFirestore } from 'firebase-admin/firestore'; // ... define your flow: myFlow const fApp = initializeApp(); const firestore = new FirestoreStreamManager({ firebaseApp: fApp, db: getFirestore(fApp), collection: 'streams', }); const app = express(); app.use(express.json()); app.post('/myDurableFlow', expressHandler(myFlow, { streamManager: firestore })); app.listen(8080); ``` Similarly, for the Realtime Database: ```ts import { RtdbStreamManager } from '@genkit-ai/firebase/beta'; const rtdb = new RtdbStreamManager({ firebaseApp: fApp, refPrefix: 'streams', }); app.post('/myDurableRtdbFlow', expressHandler(myFlow, { streamManager: rtdb })); ``` ### Limitations * **Firestore**: The entire stream history (chunks and final result) is stored in a single document. Firestore has a strict [1MB limitation on document size](https://firebase.google.com/docs/firestore/quotas). If your stream output exceeds this limit, the flow will fail. * **Realtime Database**: While RTDB does not have the same 1MB limit, storing very large streams may impact performance or hit other quotas. The sources for this package are in the main [Genkit](https://github.com/firebase/genkit) repo. Please file issues and pull requests against that repo. Usage information and reference details can be found in [Genkit documentation](https://genkit.dev/). License: Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/firebase/genkit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server