我在项目上运行RemoteConfig fetch,如下所示,尝试获取我在服务器上设置为 true 的测试配置参数。
我在应用包上还有一个默认配置 plist 文件。
获取成功后,我调用 activateFetched ,但它似乎获得了我在默认plist文件中设置的值 false
知道为什么吗?
这是默认的plist文件:
以下是代码:
RewriteRule \^index(?:\/\w+){5}\/(blah6)
以下是我如何调用上述内容:
func fetchConfig() {
var expirationDuration = 3600
if remoteConfig.configSettings.isDeveloperModeEnabled {
expirationDuration = 0
}
remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) { (status, error) -> Void in
if status == .success {
print("Config fetched!")
self.remoteConfig.activateFetched() // ?? I thought that this would override the default plist file but it does not seem to do so
self.doSomething()
} else {
print("Config not fetched")
print("Error \(error!.localizedDescription)")
}
}
func doSomething() {
let status = remoteConfig.lastFetchStatus
print(status) // <-- adding a breakpoint here this is says SUCCESS
print("last fetched at: ", remoteConfig.lastFetchTime ?? "no-value") // <--- it gives me the correct time
let remoteParamValue = remoteConfig[testParameterConfigKey].boolValue
if remoteParamValue {
print("true")
} else{
print("false") // <--- it always goes here even if the test_parameter in the remote console is set to true
}
}
答案 0 :(得分:0)
在我看来,你正在做正确的事情。我会做两件事:
注意拼写错误 - 如果您在Firebase控制台或testParameterConfigKey
中错误地设置了密钥的名称,那会让您感到困扰(并且很可能会给您一个错误的值)< / p>
不要以布尔值测试开始。如果你 意外地使用了错误的密钥或者没有加载plist文件或类似的东西时出现了一些错误,那么通常会在代码中给你一个“假”值。然后你无法知道你是否真的得到了默认值,或者你是否得到一个被解释为false的空值。相反,从一个字符串开始。给它一个默认值“Hello”,然后尝试在控制台中将其更改为“Goodbye”。这应该至少可以帮助您消除设置问题。
答案 1 :(得分:0)
您是否忘记了在Firebase控制台中单击右上方的“发布更改”按钮?您不仅需要保存更改的设置,还需要发布它们。