Loading...
Loading...
Integrate Firebase AI Logic (Gemini in Firebase) for intelligent app features. Use when adding AI capabilities to Firebase apps, implementing generative AI features, or setting up Firebase AI SDK. Handles Firebase AI SDK setup, prompt engineering, and AI-powered features.
npx skill4agent add supercent-io/skills-template firebase-ai-logic# Firebase CLI 설치
npm install -g firebase-tools
# 로그인
firebase login
# 프로젝트 초기화
firebase initnpm install firebase @anthropic-ai/sdkimport { 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" });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();
}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;
}
}
}project/
├── src/
│ ├── ai/
│ │ ├── client.ts # AI 클라이언트 초기화
│ │ ├── prompts.ts # 프롬프트 템플릿
│ │ └── handlers.ts # AI 핸들러
│ └── firebase/
│ └── config.ts # Firebase 설정
├── firebase.json
└── .env.local # API 키 (gitignore)