FirebaseExtended / FirebaseExtended/reactfire
No bindings for Firebase AI Logic
- Vorherrschende Sprache
- TypeScript
- Sterne
- 3.6k
- Forks
- 403
- Ø Merge
- 14 Std. 53 Min.
- Gemergte PRs (30 T.)
- 5
Beschreibung
ReactFire ships a provider and hook set for nine Firebase products and none for Firebase AI Logic (`@firebase/ai`). An app that uses it initializes it by hand, outside the `FirebaseAppProvider` tree the rest of the app runs through.
`src/sdk.tsx` declares `AppCheckProvider`, `AuthProvider`, `AnalyticsProvider`, `DatabaseProvider`, `FirestoreProvider`, `FunctionsProvider`, `PerformanceProvider`, `StorageProvider` and `RemoteConfigProvider`, each with a matching `useX` and `useInitX`. A search of `src/` for `getAI`, `firebase/ai` or `@firebase/ai` returns nothing (control: `FirebaseAppProvider` appears in two files, so the search can return hits).
### Why this surface wants hooks more than most
AI Logic is stream and session shaped, which is exactly the async state a hook is good at and the raw SDK leaves to the caller:
- **`generateContentStream`** returns an async iterable plus an aggregated response promise. Consuming it in React means accumulating tokens into state, and cancelling the in-flight request when the component unmounts. Neither has an obvious idiom today.
- **`ChatSession.sendMessage` / `sendMessageStream`** hold conversation history that is naturally component state, currently kept by hand alongside the session object.
- **One-shot `generateContent`** is the trivial case and falls out of the same binding.
### What it looks like in practice
Both demo apps in this repository hit it. In the ReactFire recipe demo (#798) the AI page is byte-identical to the plain SDK version, because there is no binding to differ: the page calls the SDK directly, taking the `FirebaseApp` from `useFirebaseApp()`. That is a fair outcome rather than a bug, but it is the only page in the comparison where ReactFire has nothing to offer, and a reader notices that the app reaches around the provider tree for one product and through it for the others.
### Scope
Out of scope for now: `LiveSession` and `startAudioConversation`, which are Public Preview. The connect and teardown lifecycle there is a strong hook candidate and worth revisiting once the API is stable, but filing against a preview surface is premature.
### Notes
No existing issue covers this: searches for "AI Logic", "gemini", "vertex" and "genai" in issue titles return nothing across open and closed, with a control search returning results.
Filed at @jhuleatt's request from the 2026-08-24 sync: file AI Logic features that ReactFire does not support as issues so they can be reviewed and prioritized.
Beitragsleitfaden
Rechercherichtung
Start with the provider, hook, and initializer declarations in src/sdk.tsx, then compare the ReactFire recipe demo from #798 with its plain Firebase AI Logic usage. Review the existing FirebaseAppProvider references and the @firebase/ai surface described in the issue. Done means a reviewed binding for the stable generateContent, generateContentStream, and ChatSession cases, while leaving LiveSession and startAudioConversation out of scope.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- firebase, react, typescript
- Bereich
- ai, frontend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100