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

Firebase模拟器环境下Stripe Payments扩展数据同步失败求助

解决Firebase本地模拟器中Stripe Payments扩展同步失败(404错误)问题

以下是针对问题的具体排查和解决步骤:

  • 修正Stripe Webhook指向
    Stripe测试控制台默认配置的webhook指向TEST环境的云函数地址,本地模拟器的webhook运行在本地端口,无法直接被Stripe服务器访问。解决方法:

    1. 用ngrok等工具转发本地Firebase函数端口:ngrok http 5001,获取外网可访问的转发地址(比如https://abc123.ngrok.io)
    2. 在Stripe测试控制台添加新的webhook,URL设置为{ngrok地址}/demo_myAppName/us-central1/firestoreStripePayments-webhook
    3. 勾选与TEST环境一致的事件类型(如product.created、product.updated、price.created等)
    4. 复制该webhook的签名密钥,替换本地.secret.local文件中的STRIPE_WEBHOOK_SECRET值
  • 验证本地扩展配置参数
    检查本地生成的.env和.secret.local文件:

    • 确认FIREBASE_PROJECT_ID值为demo_myAppName(本地模拟器项目ID)
    • 确认STRIPE_API_KEY使用的是Stripe测试密钥(sk_test_xxx开头)
    • 确保STRIPE_WEBHOOK_SECRET与上一步添加的本地webhook签名密钥完全一致
  • 确认模拟器加载扩展配置
    启动模拟器时执行完整命令:firebase emulators:start --only functions,firestore,extensions,查看启动日志:

    • 确认日志中出现Extension stripe/firestore-stripe-payments successfully installed locally或类似提示
    • 确认firestoreStripePayments-webhook函数已初始化,日志显示Function firestoreStripePayments-webhook initialized
  • 排查Firestore权限问题
    临时调整本地Firestore规则(firestore.rules),设置宽松权限测试:

    rules_version = '2';
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if true;
        }
      }
    }
    

    重启模拟器后再次测试同步,若正常则说明原规则限制了扩展的写入权限,需调整规则允许extensions/stripe.firestore-stripe-payments服务账号访问products和prices集合

  • 清除模拟器缓存并重启

    1. 停止所有模拟器进程
    2. 删除本地.firebase/emulators目录下的所有缓存文件
    3. 重新启动模拟器,确保Angular应用连接的是本地Firebase模拟器实例(而非TEST环境)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:22:27