使用Stripe Firebase支付扩展时Webhook报错:用户未找到
排查「Run Payments With Stripe」Firebase扩展Webhook报错「User not found!」的方案
- 确认metadata键名准确性:检查创建Payment Intent时传入的metadata键是否为**
firebaseUID**(大小写完全匹配),避免拼写错误(比如写成firebaseUid或user_id),扩展只会识别指定键名的UID。 - 验证Payment Intent的metadata有效性:登录Stripe后台,找到事件
evt_3NM8vqBAry7EbN3617epEYhQ关联的Payment Intent,查看其metadata字段,确认firebaseUID的值是正确的Firebase用户UID,无空格、乱码或拼写错误。 - 理解空switch case的影响:虽然源码中
payment_intent.succeeded的switch case为空,但报错说明扩展的通用前置处理逻辑会先尝试从metadata提取UID并查找Firebase用户,这一步失败就会抛出「User not found!」,和case内的代码无关。 - 检查Firebase用户状态:确认
firebaseUID对应的用户存在于Firebase Auth中,未被删除或禁用。可通过Firebase控制台的Auth面板搜索UID,或使用Firebase CLI命令firebase auth:users:lookup [你的UID]验证。 - 确认扩展权限配置:确保扩展的服务账号拥有读取Firebase Auth用户信息的权限,若扩展需要写入支付记录到Firestore,还需确保其有对应集合的读写权限,权限不足会导致用户查找失败。
- 核对Webhook事件payload:在Stripe后台的Webhook日志中查看该事件的原始payload,确认metadata字段和你创建Payment Intent时传入的完全一致,排除中间环节修改的可能。
内容的提问来源于stack exchange,提问作者Ofek150
相关产品推荐
相关产品推荐

