Loading...
Loading...
集成Firebase AI Logic(Firebase中的Gemini)以实现智能应用功能。适用于为Firebase应用添加AI能力、实现生成式AI功能或设置Firebase AI SDK的场景。涵盖Firebase AI SDK设置、提示工程和AI驱动功能的处理。
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)