我在从本地.plist文件读取firebase远程配置时遇到问题(如果用户在打开第一个应用程序时获取远程配置值时没有互联网连接,则提供默认值(。
只有在脱机模式下启动应用程序时才会发生这种情况。只需更新:
- 文件名100%正确。检查了很多次
- 检查了plist文件-可能已损坏或终端命令:plutilPATH-一切正常
当前设置:
初始化远程配置服务时:
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 0
RemoteConfig.remoteConfig().setDefaults(fromPlist: remoteConfigDefaults)
RemoteConfig.remoteConfig().configSettings = settings
然后尝试读取数组值:
func arrayValue(forKey key: RemoteConfigKey) -> [String] {
if localStorage.isRemoteConfigDebugEnabled,
let localValue = localStorage.getRemoteConfigValue(forKey: key) as? String {
return localValue.components(separatedBy: ",")
}
return value(forKey: key).jsonValue as? [String] ?? []
}
值为:
func value(forKey key: RemoteConfigKey) -> RemoteConfigValue {
RemoteConfig.remoteConfig().configValue(forKey: key.rawValue)
}
实际上问题只出在数组和字符串上。Int和布尔值工作得很好(完全相同的方法,只是代替了[String]使用的jsonValue。boolValue或.numberValue.IntValue和.doubleValue.
尝试调试了一段时间。更新到最新的firebase SDK,没有任何帮助。
有什么建议吗?
所以我深入挖掘并找到了原因。因此,如果有人需要答案,并且有同样的问题:
有一系列复杂的事情需要解决:
- Firebase SDK出现问题,该问题在8.0版本中已修复,因此必须更新Firebase SDK
- plist文件中使用了错误的quets,所以只需检查quests是否正常即可
- 在设置远程配置设置之前,必须调用FirebaseApp.config(((在我的情况下,它有设置,但它是一样的(