Firebase无法设置RemoteConfig默认值

时间:2016-11-24 10:11:52

标签: ios firebase firebase-remote-config

我正在使用Firebase的RemoteConfig框架。 从Firebase服务器获取数据工作正常(已在生产中工作),但设置默认值似乎不起作用。我试图坚持文档,但也许我做错了。

为了测试这个,我做了以下事情:

[self.remoteConfig setDefaults:@{@"key1": @"value1"}];

然后,在Firebase Console我设置参数key1中,使默认No Value向客户端发送零数据。我没有定义任何其他条件,因此这是唯一要发送的值。根据{{​​3}},RemoteConfig对象应该在这种情况下选择默认值。

获取代码:

[self.remoteConfig fetchWithExpirationDuration:self.configurationExpirationDuration
                           completionHandler:^(FIRRemoteConfigFetchStatus status,
                                               NSError * _Nullable error) {
  if (status == FIRRemoteConfigFetchStatusSuccess) {
    [self.remoteConfig activateFetched];

    FIRRemoteConfigValue *remoteValue1 = [self.remoteConfig configValueForKey:@"key1"];
    NSString *value1 = remoteValue1.stringValue;

    // Logic comes here

  } else {
    LogError(@"Error fetching remote configuration from Firebase: %@", error);
}

remoteValue1不是nil

value1nil

remoteValue1.dataValue_NSZeroData

此外,当我尝试使用

[self.remoteConfig defaultValueForKey:@"key1" namespace:nil]

我得到nil值(假设将nil发送到namespace参数将为我提供默认的命名空间默认值。)

我在这里做错了吗?

1 个答案:

答案 0 :(得分:4)

configValueForKey:方法首先检查从Firebase服务器获取结果,如果结果存在,则返回远程结果而不是默认值。

所以key1值应该是你在控制台中设置的值,nil(没有值)。

当您致电defaultVaueForKey:namespace:时,您应始终使用默认名称空间FIRNamespaceGoogleMobilePlatform。使用nil将不会返回任何有效的配置结果。