Мне нужно протестировать некоторые функции моего приложения только с предварительно выбранной группой пользователей.
Я создал аудиторию, в которой user_id exactly matches 123456
. 123456
- это мой собственный идентификатор.
В Remote Config я создал условие, которое соответствует пользователям из указанной выше аудитории.
Затем я создал в Remote Config параметр с именем feature_available
и для условия установил возвращаемое значение true
. Значение по умолчанию - false
.
В своем приложении я настроил Firebase:
FIRApp.configure()
let remoteConfig = FIRRemoteConfig.remoteConfig()
if let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: false) {
remoteConfig.configSettings = remoteConfigSettings
}
remoteConfig.setDefaultsFromPlistFileName("FirebaseRemoteConfigDefaults")
И установите ID пользователя:
FIRAnalytics.setUserID("123456")
Затем я беру из Firebase:
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()
, и получил тот же результат. Какие-либо предложения?