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

调用@react-native-firebase/remote-config的getAll()报Object.keys(this._values)错误

React Native Firebase Remote Config 报错排查解决方案

前置语法检查

原有代码存在语法错误,getConfig调用的then回调缺少闭合括号,先修正该问题再验证:

// 原错误写法
getConfig()
.then(res => console.log(res)
.catch(err => console.log(err.message))

// 修正后
getConfig()
.then(res => console.log(res))
.catch(err => console.log(err.message))

基础安装配置排查

  • 检查@react-native-firebase/app和@react-native-firebase/remote-config依赖版本完全一致,执行以下命令校验版本:
    npm list @react-native-firebase/app @react-native-firebase/remote-config
    版本不一致会导致原生模块调用异常,需调整为相同版本后重新安装依赖。
  • iOS端执行cd ios && pod install完成原生依赖集成,Android端确认gradle配置中已正确引入Firebase相关插件。
  • 确认google-services.json(Android)、GoogleService-Info.plist(iOS)已放入对应原生目录,Firebase核心服务初始化正常。

核心调用逻辑修复

报错undefined is not an object (evaluating 'Object.keys(this._values)')的核心原因是:调用getAll()前未完成远程配置的拉取和激活,本地配置缓存的_values属性未初始化。
@react-native-firebase/remote-config要求调用get系列方法前,必须依次执行设置默认配置、拉取远程配置、激活配置三个前置步骤,不能直接调用getAll()。

修复后完整代码示例

import remoteConfig from '@react-native-firebase/remote-config';
import { useEffect } from 'react';

useEffect(() => {
  getConfig()
    .then(res => console.log(res))
    .catch(err => console.log(err.message))
}, [])

const getConfig = async () => {
  // 1. 设置本地默认配置(可选但推荐,避免拉取失败时无可用配置)
  await remoteConfig().setDefaults({
    welcome_text: '默认欢迎语',
    // 此处补充你业务需要的其他默认配置键值对
  });
  // 2. 拉取远程配置,参数为缓存有效期(毫秒),示例3600000即1小时,默认12小时
  await remoteConfig().fetch(3600000);
  // 3. 激活拉取到的远程配置,使其生效
  await remoteConfig().activate();
  // 4. 获取所有配置
  const allConfig = remoteConfig().getAll();
  return allConfig;
}

其他验证项

  • 清除应用缓存、卸载重装应用后重试,排除旧缓存数据影响。
  • 确认Firebase控制台的Remote Config页面已经发布配置,未发布的配置无法正常拉取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:11