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

Admob SSV URL验证失败:手动请求正常却返回404错误

解决Admob验证Firebase Function时404但手动请求正常的问题

常见原因及排查步骤

  • 核对Function的部署状态与URL格式
    确认Firebase Function已完全部署完成,Admob中填写的URL必须与Firebase控制台显示的地址完全一致,不能遗漏https://前缀,也不要添加多余的路径参数(除非你的Function逻辑明确需要)。Firebase Function的标准URL格式为https://<region>-<project-id>.cloudfunctions.net/<function-name>,逐一核对每个部分是否正确。

  • 排查请求头差异
    Admob发送的验证请求和手动请求的请求头可能存在差异,比如Content-Type或自定义头。可以在Function中添加日志打印所有请求头和请求体,对比两者的区别:

    exports.admobVerification = functions.https.onRequest((req, res) => {
      console.log('请求头:', req.headers);
      console.log('请求体:', req.body);
      // 你的验证逻辑
      res.status(200).send('OK');
    });
    

    查看Firebase控制台的日志,根据差异调整Function的处理逻辑,比如确保兼容Admob发送的Content-Type类型。

  • 检查CORS配置
    即使Admob是服务器端请求,若Function配置了严格的CORS规则,也可能拦截请求。可以添加CORS处理允许所有来源:

    const cors = require('cors')({ origin: true });
    exports.admobVerification = functions.https.onRequest((req, res) => {
      cors(req, res, () => {
        // 你的验证逻辑
        res.status(200).send('OK');
      });
    });
    
  • 确认请求方式兼容性
    部分场景下Admob会先发GET请求验证URL可达性,而你的Function可能只处理POST请求。检查Function是否同时支持GET和POST,或者在Admob设置中确认是否可指定请求方式。若Admob确实先发GET,需让Function处理GET请求并返回200。

  • 解决冷启动延迟问题
    Firebase Function冷启动时存在延迟,而Admob验证请求的超时时间较短,可能导致请求失败返回404。可以手动触发几次Function让它保持“暖状态”后再测试Admob验证,也可考虑升级Firebase计费计划,使用预留实例避免冷启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:22:42