<< All versions
Skill v1.0.1
currentAutomated scan100/100evanca/flutter-ai-rules/firebase-ai
1 files
──Details
PublishedMay 26, 2026 at 02:47 AM
Content Hashsha256:ed2632b6f254eb76...
Git SHAe648c32557b8
Bump Typepatch
──Files
Files (1 file, 4.7 KB)
SKILL.md4.7 KBactive
SKILL.md · 166 lines · 4.7 KB
version: "1.0.1" name: firebase-ai description: "Integrate Firebase AI Logic into Flutter apps using the Gemini Developer API. Use when setting up the firebase_ai plugin, generating text or chat responses with Gemini models, streaming AI output, implementing multimodal prompts, handling AI service errors, or applying security and privacy considerations for AI features."
Firebase AI Skill
This skill defines how to correctly use Firebase AI Logic in Flutter applications.
When to Use
Use this skill when:
- Setting up and configuring Firebase AI in a Flutter project.
- Generating text content or chat responses with Gemini models.
- Implementing streaming AI responses for real-time UI updates.
- Sending multimodal prompts (text + images) to Gemini.
- Handling errors, offline scenarios, and rate limits for AI operations.
- Applying security and privacy considerations for AI features.
1. Setup and Configuration
flutter pub add firebase_ai
dart
import 'package:firebase_ai/firebase_ai.dart';import 'package:firebase_core/firebase_core.dart';import 'firebase_options.dart';// Initialize FirebaseAppawait Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform,);// Initialize the Gemini Developer API backend servicefinal model =FirebaseAI.googleAI().generativeModel(model: 'gemini-2.5-flash');
- Ensure the Firebase project is configured for AI services via the Firebase AI Logic page in the Firebase Console.
- Initialize Firebase before using any Firebase AI features.
- Use
FirebaseAI.googleAI()for the Gemini Developer API backend (recommended starting point). - Implement App Check to prevent abuse of Firebase AI endpoints.
Platform support:
| Platform | Support | |
|---|---|---|
| iOS | Full | |
| Android | Full | |
| Web | Full | |
| macOS / other Apple | Beta | |
| Windows | Not supported |
2. Generating Content
Single-turn text generation
dart
final response = await model.generateContent([Content.text('Summarize the benefits of Flutter for mobile development'),]);final text = response.text; // The generated summary string
Multi-turn chat
dart
final chat = model.startChat();final response = await chat.sendMessage(Content.text('What is the difference between StatelessWidget and StatefulWidget?'),);print(response.text);// Follow-up in the same conversationfinal followUp = await chat.sendMessage(Content.text('When should I use StatefulWidget?'),);print(followUp.text);
Streaming responses
Use streaming to display partial results as they arrive:
dart
final stream = model.generateContentStream([Content.text('Write a step-by-step guide to implementing dark mode in Flutter'),]);await for (final chunk in stream) {// Append chunk.text to the UI progressivelysetState(() => _output += chunk.text ?? '');}
Multimodal prompts (text + image)
dart
final imageBytes = await File('photo.jpg').readAsBytes();final response = await model.generateContent([Content.multi([TextPart('Describe what you see in this image'),InlineDataPart('image/jpeg', imageBytes),]),]);
3. Error Handling
Wrap AI calls in structured error handling:
dart
try {final response = await model.generateContent([Content.text(prompt)]);return response.text;} on FirebaseAIException catch (e) {if (e.message?.contains('quota') ?? false) {// Handle rate limiting — show retry message or queue the requestreturn 'Service is busy. Please try again shortly.';}return 'AI service error: ${e.message}';} catch (e) {return 'Unexpected error: $e';}
- Provide meaningful error messages to users when AI operations fail.
- Handle offline scenarios with appropriate fallback behavior (e.g., cached responses).
- Implement exponential backoff for rate-limited or transient errors.
4. Security and Privacy
- Follow Firebase Security Rules best practices when using AI services alongside other Firebase products.
- Ensure proper authentication and authorization for AI feature access.
- Sanitize user input before sending it to the model to prevent prompt injection.
- Be mindful of data privacy requirements when processing user content with AI services.
- Implement appropriate content filtering and moderation using safety settings:
dart
final model = FirebaseAI.googleAI().generativeModel(model: 'gemini-2.5-flash',safetySettings: [SafetySetting(HarmCategory.harassment, HarmBlockThreshold.medium),SafetySetting(HarmCategory.dangerousContent, HarmBlockThreshold.high),],);