Change8

firebase@12.17.0

Breaking Changes
📦 firebase-sdkView on GitHub →
1 breaking2 features🐛 2 fixes1 deprecations🔧 5 symbols

Summary

This release introduces text-to-speech capabilities and updates the AI backend naming convention. It also includes a change to Firestore's HTTP/2 flow control and removes the ability to call `initializeAppCheck` without a provider.

⚠️ Breaking Changes

  • The ability to call `initializeAppCheck` without a `provider` has been removed. You must now provide a `provider` when calling `initializeAppCheck`.

Migration Steps

  1. When calling `initializeAppCheck`, ensure a `provider` is always provided.
  2. If you were using `VertexAIBackend`, update to `AgentPlatformBackend`. If you need to use the `us-central1` location, explicitly configure it with `new AgentPlatformBackend('us-central1')`.

✨ New Features

  • Added support for text-to-speech capabilities (both single- and multi-speaker configurations) for non-Live API models (e.g., Gemini TTS models).
  • Changed the HTTP/2 flow control window size from 64 KB to 256 KB and added a `grpcFlowControlWindow` configuration option to `FirestoreSettings`. This change is only applicable to Node environments.

🐛 Bug Fixes

  • Fixed ReDoS vulnerability in FirebaseError template replacement.
  • Added more detailed error when `initializeApp()` is called a second time with different options or config, printing the different options or config.

Affected Symbols

⚡ Deprecations

  • `VertexAIBackend` is deprecated in favor of `AgentPlatformBackend`. This change reflects the renaming of Vertex AI to Gemini Enterprise Agent Platform. The default location for `AgentPlatformBackend` is `global`, while `VertexAIBackend` defaulted to `us-central1`. To use `us-central1` with `AgentPlatformBackend`, specify `getAI(app, { backend: new AgentPlatformBackend('us-central1') })` when initializing the SDK. Note that most new Gemini models do not support `us-central1`.