Мне нужно проверить некоторые функции моего приложения только с ранее выбранной группой пользователей.Аудитория Firebase на основе свойств пользователя
Я создал Аудитория, где user_id exactly matches 123456
. 123456
быть моим собственным ID.
В Удаленной конфигурации я создал Условие, соответствующее пользователям в Аудитории выше.
Затем я создал параметр в 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")
и установить идентификатор пользователя:
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()
и имел тот же результат. Любые предложения?
Спасибо, Джорди, но это в основном то, что я делаю. Когда моя выборка завершается успешно, значения, которые должны быть получены как «истинные», являются «ложными». TBH, я не верю, что это что-то с моим кодом, но что-то с Firebase, которое возвращает неправильное значение для Аудитории. – Tchelow
@Tchelow Я, должно быть, неправильно прочитал вопрос, мой плохой! –