在没有应用程序互联网的情况下启动时无法读取本地 Firebase 远程配置 plist
Posted
技术标签:
【中文标题】在没有应用程序互联网的情况下启动时无法读取本地 Firebase 远程配置 plist【英文标题】:Local Firebase remote config plist can't be read when launching without app internet 【发布时间】:2021-12-29 17:06:24 【问题描述】:我在从本地 .plist 文件读取 Firebase 远程配置时遇到问题(提供默认值,以防用户在第一个应用打开时获取远程配置值时没有互联网连接)。
只有在离线模式下启动应用时才会发生这种情况。 只是为了更新:
-
文件名 100% 正确。检查了很多次。
检查过的 plist 文件 - 可能已损坏或使用终端命令:plutil PATH - 一切正常。
当前设置:
初始化远程配置服务时:
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 和 booleans 工作得很好(完全相同的方法,只是用 .boolValue 或 .numberValue.IntValue 和 .doubleValue 代替 [String] 的 jsonValue。
尝试调试一段时间。更新到最新的 firebase SDK,没有任何帮助。
有什么建议吗?
【问题讨论】:
【参考方案1】:所以我深入挖掘并找到了原因。因此,如果有人需要答案并遇到同样的问题:
有很多事情需要解决:
-
Firebase SDK 存在问题,已在 8.0 版本中修复,因此必须更新 Firebase sdk
plist 文件中使用了错误的 quetes,因此只需检查 questes 是否正常即可。
必须在设置远程配置设置之前调用 FirebaseApp.configure()(在我的情况下是使用设置,但仍然是相同的)
【讨论】:
以上是关于在没有应用程序互联网的情况下启动时无法读取本地 Firebase 远程配置 plist的主要内容,如果未能解决你的问题,请参考以下文章
docker上的Spring启动无法从资源中读取属性文件,但可以在没有Docker的情况下使用java -jar
GWT rpc 在本地机器没有互联网连接的情况下无法工作,但在互联网上它可以工作