firebase-ai-logic
40
总安装量
41
周安装量
#5208
全站排名
安装命令
npx skills add https://github.com/supercent-io/skills-template --skill firebase-ai-logic
Agent 安装分布
opencode
33
gemini-cli
30
claude-code
30
github-copilot
25
antigravity
24
Skill 文档
Firebase AI Logic Integration
When to use this skill
- AI ê¸°ë¥ ì¶ê°: ì±ì ìì±í AI ê¸°ë¥ íµí©
- Firebase íë¡ì í¸: Firebase ê¸°ë° ì±ì AI ì¶ê°
- í ì¤í¸ ìì±: ì½í ì¸ ìì±, ìì½, ë²ì
- ì´ë¯¸ì§ ë¶ì: ì´ë¯¸ì§ ê¸°ë° AI ì²ë¦¬
Instructions
Step 1: Firebase íë¡ì í¸ ì¤ì
# Firebase CLI ì¤ì¹
npm install -g firebase-tools
# ë¡ê·¸ì¸
firebase login
# íë¡ì í¸ ì´ê¸°í
firebase init
Step 2: AI Logic íì±í
Firebase Consoleìì:
- Build > AI Logic ì í
- Get Started í´ë¦
- Gemini API íì±í
Step 3: SDK ì¤ì¹
Web (JavaScript):
npm install firebase @anthropic-ai/sdk
ì´ê¸°í ì½ë:
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: AI ê¸°ë¥ êµ¬í
í ì¤í¸ ìì±:
async function generateContent(prompt: string) {
const result = await model.generateContent(prompt);
return result.response.text();
}
// ì¬ì© ìì
const response = await generateContent("Firebaseì 주ì 기ë¥ì ì¤ëª
í´ì£¼ì¸ì.");
console.log(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);
}
}
ë©í°ëª¨ë¬ (ì´ë¯¸ì§ + í ì¤í¸):
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: ë³´ì ê·ì¹ ì¤ì
Firebase Security Rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// AI ìì² ë¡ê·¸ ë³´í¸
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/
âââ src/
â âââ ai/
â â âââ client.ts # AI í´ë¼ì´ì¸í¸ ì´ê¸°í
â â âââ prompts.ts # í롬íí¸ í
í릿
â â âââ handlers.ts # AI í¸ë¤ë¬
â âââ firebase/
â âââ config.ts # Firebase ì¤ì
âââ firebase.json
âââ .env.local # API í¤ (gitignore)
Best practices
- í롬íí¸ ìµì í: ëª ííê³ êµ¬ì²´ì ì¸ í롬íí¸ ìì±
- ìë¬ ì²ë¦¬: AI ìëµ ì¤í¨ ì í´ë°± 구í
- Rate Limiting: ì¬ì©ë ì í ë° ë¹ì© ê´ë¦¬
- ìºì±: ë°ë³µ ìì²ì ëí ìëµ ìºì±
- ë³´ì: API í¤ë íê²½ë³ìë¡ ê´ë¦¬
Constraints
íì ê·ì¹ (MUST)
- API í¤ë¥¼ ì½ëì íëì½ë©íì§ ìì
- ì¬ì©ì ì ë ¥ ê²ì¦ ìí
- ìë¬ í¸ë¤ë§ 구í
ê¸ì§ ì¬í (MUST NOT)
- 민ê°í ë°ì´í°ë¥¼ AIì ì ì¡íì§ ìì
- 무ì í API í¸ì¶ íì©íì§ ìì
References
Metadata
- ë²ì : 1.0.0
- ìµì¢ ì ë°ì´í¸: 2025-01-05
- í¸í íë«í¼: Claude, ChatGPT, Gemini