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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:06:27