You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase:Vertex AI Gemini API客户端iOS端用户使用限制咨询

Firebase Vertex AI客户端(iOS)使用限制方案

核心思路:通过Cloud Functions统一管控入口

禁止iOS客户端直接调用Vertex AI的原生API,所有请求必须通过Cloud Functions中转,以此实现全链路的权限、用量及内容管控。


1. 基于用户身份的每日调用次数限制

在Cloud Functions中结合Firebase Auth与Firestore/实时数据库实现用量统计:

  • 每次函数收到请求时,先通过Firebase Auth验证用户身份,提取唯一UID
  • 在Firestore中创建user_api_usage集合,每个文档以{用户UID}_{当前日期(如YYYY-MM-DD)}为ID,存储call_count字段
  • 读取该文档的call_count值:
    • 若数值小于设定阈值(如10),则允许调用Vertex AI,并将call_count自增1
    • 若数值达到或超过阈值,直接返回错误响应,拒绝请求
  • 核心逻辑片段:
    const userId = context.auth.uid;
    const dateKey = new Date().toISOString().split('T')[0];
    const docRef = db.collection('user_api_usage').doc(`${userId}_${dateKey}`);
    
    const doc = await docRef.get();
    let callCount = doc.exists ? doc.data().call_count : 0;
    
    if (callCount >= 10) {
      return { error: '今日调用次数已达上限' };
    }
    
    // 执行Vertex AI调用逻辑...
    
    // 更新调用计数
    await docRef.set({ call_count: callCount + 1 }, { merge: true });
    

2. 控制单次调用的Token大小

在Cloud Functions中转时,先对用户传入的内容进行Token校验:

  • 使用Vertex AI官方工具(如google-cloud-aiplatform库中的Tokenizer)计算输入Prompt的Token数量
  • 设定单次调用的Token上限(如1000),若输入Token数超过上限,直接返回错误,不转发至Vertex AI
  • 调用Vertex AI时,通过参数限制最大输出Token数(如maxOutputTokens: 500),避免返回内容产生额外费用

3. 强化权限隔离

  • IAM权限管控:不给iOS客户端使用的Firebase服务账号分配任何Vertex AI调用权限,彻底阻断客户端直接访问的可能
  • Cloud Functions身份验证:启用Firebase Functions的身份验证中间件,仅允许已通过Firebase Auth登录的用户调用中转函数

4. 账单兜底防护

除代码层面的限制外,在Google Cloud控制台配置额外防护:

  • 为Vertex AI服务设置每日支出预算,当消费达到阈值时自动暂停服务
  • 开启账单分级提醒,当消费接近预算的80%、90%时触发邮件通知

内容的提问来源于stack exchange,提问作者Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 23:32:07