firebase-ai-logic
SKILL.md
Firebase AI Logic Integration
When to use this skill
- Add AI features: integrate generative AI features into your app
- Firebase projects: add AI to Firebase-based apps
- Text generation: content generation, summarization, translation
- Image analysis: image-based AI processing
Instructions
Step 1: Firebase Project Setup
# Install Firebase CLI
npm install -g firebase-tools
# Login
firebase login
# Initialize project
firebase init
Step 2: Enable AI Logic
In Firebase Console:
- Select Build > AI Logic
- Click Get Started
- Enable the Gemini API
Step 3: Install SDK
Web (JavaScript):
npm install firebase @anthropic-ai/sdk
Initialization code:
import { initializeApp } from 'firebase/app';
import { getAI, getGenerativeModel } from 'firebase/ai';
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
};
const app = initializeApp(firebaseConfig);
const ai = getAI(app);
const model = getGenerativeModel(ai, { model: "gemini-2.0-flash" });
Step 4: Implement AI Features
Text generation:
async function generateContent(prompt: string) {
const result = await model.generateContent(prompt);
return result.response.text();
}
// Example usage
const response = await generateContent("Explain the key features of Firebase.");
console.log(response);
Streaming response:
async function streamContent(prompt: string) {
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const text = chunk.text();
console.log(text);
}
}
Multimodal (image + text):
async function analyzeImage(imageUrl: string, prompt: string) {
const imagePart = {
inlineData: {
data: await fetchImageAsBase64(imageUrl),
mimeType: "image/jpeg"
}
};
const result = await model.generateContent([prompt, imagePart]);
return result.response.text();
}
Step 5: Configure Security Rules
Firebase Security Rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Protect AI request logs
match /ai_logs/{logId} {
allow read: if request.auth != null && request.auth.uid == resource.data.userId;
allow create: if request.auth != null;
}
}
}
Output format
Project structure
project/
├── src/
│ ├── ai/
│ │ ├── client.ts # Initialize AI client
│ │ ├── prompts.ts # Prompt templates
│ │ └── handlers.ts # AI handlers
│ └── firebase/
│ └── config.ts # Firebase config
├── firebase.json
└── .env.local # API key (gitignored)
Best practices
- Prompt optimization: write clear, specific prompts
- Error handling: implement a fallback when AI responses fail
- Rate Limiting: limit usage and manage costs
- Caching: cache responses for repeated requests
- Security: manage API keys via environment variables
Constraints
Required Rules (MUST)
- Do not hardcode API keys in code
- Validate user input
- Implement error handling
Prohibited (MUST NOT)
- Do not send sensitive data to the AI
- Do not allow unlimited API calls
References
Metadata
- Version: 1.0.0
- Last updated: 2025-01-05
- Supported platforms: Claude, ChatGPT, Gemini
Examples
Example 1: Basic usage
Example 2: Advanced usage
Weekly Installs
4
Repository
akillness/oh-my-godsGitHub Stars
2
First Seen
5 days ago
Security Audits
Installed on
mcpjam4
iflow-cli4
claude-code4
junie4
windsurf4
zencoder4