FirebaseExtended / FirebaseExtended/reactfire
No bindings for Firebase AI Logic
- 主要言語
- TypeScript
- スター
- 3.6k
- フォーク
- 403
- 平均マージ
- 14時間 53分
- マージ済み PR(30日)
- 5
説明
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.
コントリビューションガイド
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- firebase, react, typescript
- 領域
- ai, frontend
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 38/100