React Native调用Firebase logPurchase()报items未知属性错误
问题根因
这个报错和接入配置无关,是你参考的文档版本和实际安装的@react-native-firebase版本不匹配导致的。
你当前用的@react-native-firebase/analytics@14.11.0属于旧版本,该版本还沿用Firebase旧版电商埋点的参数规范,logPurchase方法并不支持items字段,所以会抛出未知属性的错误。
解决方法
二选一即可:
方案1:不升级依赖,适配v14版本参数规则
v14版本中,商品列表对应的字段是products,同时商品对象的字段使用驼峰命名、价格字段为price,修改后的参数如下:
const parameters = { value: 64.55, currency: "eur", products: [ { itemCategory: "special_offer", quantity: 1, price: 64.55 } ] } try { await analytics().logPurchase(parameters) } catch (error) { console.log('🚀 ~ error', error) }
修改后重新编译安装App即可正常调用,热重载不会同步原生模块的参数校验逻辑,测试时一定要重装App。
方案2:升级依赖对齐最新文档规范
如果要完全按照你参考的最新文档写法传参,可以把@react-native-firebase/app和@react-native-firebase/analytics升级到v15及以上的稳定版本。v15版本同步了Firebase新版电商埋点规范,正式支持items字段和下划线格式的商品参数。升级前注意查阅对应版本的更新日志,处理其他可能的不兼容变更,升级后同样需要重新执行原生构建流程。
额外排查项
如果调整参数后仍然报错,可以依次检查:
- 确认原生端配置文件(安卓
google-services.json、iOSGoogleService-Info.plist)路径正确、和当前Firebase项目匹配 - 确认其他基础埋点方法(比如自定义
logEvent)可以正常调用,排除初始化失败的问题 - 确认传入的
value为数值类型、currency为三位标准货币代码,你当前传入的参数格式在这部分是符合要求的
内容的提问来源于stack exchange,提问作者patrick.tresp
相关产品推荐
相关产品推荐

