🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install supercent-io/skills-template/firebase-ai-logic

💡 提示:需要 Node.js 和 NPM

Firebase AI 逻辑集成

何时使用此技能

  • 添加AI功能:将生成式AI功能集成到您的应用中
  • Firebase项目:为基于Firebase的应用添加AI能力
  • 文本生成:内容创作、摘要总结、翻译等
  • 图像分析:基于图像的AI处理

操作指南

步骤 1:Firebase 项目设置

# 安装 Firebase CLI
npm install -g firebase-tools

# 登录 Firebase
firebase login

# 初始化项目
firebase init

步骤 2:启用 AI Logic

在 Firebase 控制台中:

  1. 选择 构建 > AI Logic
  2. 点击 开始使用
  3. 启用 Gemini API

步骤 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" });

步骤 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();
}

步骤 5:配置安全规则

Firebase 安全规则

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)

最佳实践

  1. 提示词优化:编写清晰、具体的提示词以获得更好的结果
  2. 错误处理:在 AI 响应失败时实现降级或备用方案
  3. 速率限制:限制使用频率以控制成本
  4. 缓存策略:对重复请求的响应进行缓存
  5. 安全措施:通过环境变量管理 API 密钥,避免硬编码

约束条件

强制性规则 (必须遵守)

  1. 切勿在代码中硬编码 API 密钥
  2. 必须验证用户输入
  3. 必须实现完善的错误处理

禁止事项 (绝不能做)

  1. 不要将敏感数据发送给 AI
  2. 不要允许无限制的 API 调用

参考链接

元数据

  • 当前版本:1.0.0
  • 最后更新:2025-01-05
  • 兼容平台:Claude, ChatGPT, Gemini

使用示例

示例 1:基础用法

示例 2:高级用法

📄 原始文档

完整文档(英文):

https://skills.sh/supercent-io/skills-template/firebase-ai-logic

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。