react-native-firebase/analytics中logPurchase事件Item revenue始终为0
问题根源及解决办法
1. 货币代码格式错误(核心问题)
Firebase Analytics要求使用ISO 4217标准的三位字母货币代码,你当前传入的currency: 'euro'不符合规范,正确的欧元代码应为'EUR'。货币格式不合法会导致Firebase无法正确解析交易金额,进而使Item revenue显示为0。
修改代码中的currency字段:
await analytics().logPurchase({ value: +order?.total, currency: 'EUR', // 替换为ISO 4217标准代码 tax: +tax?.toFixed(2), items, });
2. 验证商品项的数值有效性
确保items数组中的price和quantity是有效数值类型:
- 避免
product?.sprice转换后出现NaN,可添加默认值兜底 - 确保
quantity为整数类型,而非字符串
优化后的商品项处理代码:
const items = order?.products.map(product => { const price = parseFloat(product?.sprice) || 0; const quantity = parseInt(product?.quantity, 10) || 1; return { item_brand: product?.vendorName, item_id: product?.prodlevid, item_name: product?.name, price, quantity, } })
3. 注意Firebase数据延迟特性
Firebase Analytics的事件数据通常需要1-2小时才会在控制台完成统计更新,实时面板仅作临时参考,建议等待一段时间后再检查Item revenue数据。
4. 核对控制台事件配置
- 确认项目已正常启用Firebase Analytics服务
- 在控制台「事件」>「purchase」>「参数」中,检查
items相关参数是否被正确上报
内容的提问来源于stack exchange,提问作者wefwe fwefwef
相关产品推荐
相关产品推荐

