我需要使用之前选择的一组用户来测试我的应用的某些功能。基于用户属性的Firebase观众
我创造了一个观众,其中user_id exactly matches 123456
。 123456
是我自己的ID。
在远程配置中,我创建了一个与上面的受众群体中的用户匹配的条件。
然后,我在远程配置中创建了一个名为feature_available
的参数,对于该条件,我设置了返回值true
。默认值是false
。
在我的应用我建立了火力地堡:
FIRApp.configure()
let remoteConfig = FIRRemoteConfig.remoteConfig()
if let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: false) {
remoteConfig.configSettings = remoteConfigSettings
}
remoteConfig.setDefaultsFromPlistFileName("FirebaseRemoteConfigDefaults")
,并设置用户ID:
FIRAnalytics.setUserID("123456")
然后我从火力地堡获取:
var expirationDuration: Double
// If in developer mode cacheExpiration is set to 0 so each fetch will retrieve values from the server.
expirationDuration = remoteConfig.configSettings.isDeveloperModeEnabled ? 0 : 3600
remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) { (status, error) -> Void in
if status == .success {
remoteConfig.activateFetched()
} else {
assertionFailure("Firebase config not fetched. Error \(error!.localizedDescription)")
}
}
我做的最后一件事是从Firebase获取价值并检查我是否已启用功能:
let featureIsAvailable = remoteConfig["feature_available"].boolValue
if featureIsAvailable { ... }
问题是,每次从Firebase返回的值都是false
,我无法设法让它返回与我创建的受众群相匹配的正确值。 我也试过设置一个用户属性而不是使用setUserID()
并得到了相同的结果。 有什么建议吗?
谢谢Jordi,但这基本上是我在做什么。 当我的抓取成功时,应该被接收为'true'的值全部为'false'。 TBH,我不相信这是我的代码的东西,但与Firebase的东西,为观众返回错误的价值。 – Tchelow
@Tchelow我一定是错误地读了他们的问题,我的坏! –