当前位置: 首页 > 知识库问答 >
问题:

基于用户属性的Firebase受众

马欣德
2023-03-14

我需要测试我的应用程序的一些功能,只是一个先前选择的用户组。

我创建了一个访问群体,其中user_id完全匹配123456123456是我自己的ID。

    FIRApp.configure()

    let remoteConfig = FIRRemoteConfig.remoteConfig()
    if let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: false) {
        remoteConfig.configSettings = remoteConfigSettings
    }
    remoteConfig.setDefaultsFromPlistFileName("FirebaseRemoteConfigDefaults")
    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)")
        }
    }
    let featureIsAvailable = remoteConfig["feature_available"].boolValue
    if featureIsAvailable { ... }

问题是,每次值从Firebase返回时,它都是false,我无法使它返回与我创建的受众匹配的正确值。我还尝试设置用户属性,而不是使用setUserId(),得到了相同的结果。有什么建议吗?

共有1个答案

融烨磊
2023-03-14

我以前遇到过类似的问题,有时需要一段时间才能完成提取。当配置成功修复时,需要检查功能是否可用。希望您也能使用这样的方法:

var featureIsAvailable : Bool?

override func viewDidLoad() {
    super.viewDidLoad()

    configureRemoteConfig()
    fetchConfig()      
}

func configureRemoteConfig() {
    remoteConfig = FIRRemoteConfig.remoteConfig()
    // Create Remote Config Setting to enable developer mode.
    // Fetching configs from the server is normally limited to 5 requests per hour.
    // Enabling developer mode allows many more requests to be made per hour, so developers
    // can test different config values during development.
    let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: true)
    remoteConfig.configSettings = remoteConfigSettings!
    remoteConfig.setDefaultsFromPlistFileName("RemoteConfigDefaults")
}

func fetchConfig() {
    var expirationDuration: Double = 3600
    // If in developer mode cacheExpiration is set to 0 so each fetch will retrieve values from
    // the server.
    if (self.remoteConfig.configSettings.isDeveloperModeEnabled) {
        expirationDuration = 0
    }

    // cacheExpirationSeconds is set to cacheExpiration here, indicating that any previously
    // fetched and cached config would be considered expired because it would have been fetched
    // more than cacheExpiration seconds ago. Thus the next fetch would go to the server unless
    // throttling is in progress. The default expiration duration is 43200 (12 hours).
    remoteConfig.fetch(withExpirationDuration: expirationDuration) { (status, error) in
        if (status == .success) {
            print("Config fetched!")
            self.remoteConfig.activateFetched()

            let featureIsAvailable = self.remoteConfig["feature_available"]

            if (featureIsAvailable.source != .static) {
                self.featureIsAvailable = featureIsAvailable.boolValue
                print("should the feature be available?", featureIsAvailable!)
            }
        } else {
            print("Config not fetched")
            print("Error \(error)")
        }
        self.checkIfFeatureIsAvailable()
    }
}

func checkIfFeatureIsAvailable() {
    if featureIsAvailable == false {
        // Don't show new feature
    } else {
        // Show new feature
    }
}
 类似资料:
  • 我正在使用Firebase远程配置特性来获取应用程序所需的一些参数。参数值取决于,我在FireBase的Analytics部分的user properties选项卡中定义了它。 在获取remoteConfig之前,我尝试使用方法,但它不起作用。 我不会在网上得到任何关于这个的东西。请帮帮忙。

  • 我正在尝试根据AD用户的employeeID号更新他们。它是我们组织的一个可靠的关键领域。 本例中的每个用户都是用employeeID属性创建的。我对用户的初始创建(New-ADuser)使用相同的csv(只是设置较少的属性),正如我对用户的更新(Set-ADUser)一样。 大部分的内容都很简单,而且大部分都是从这里获取的。我成功地导入了我的csv,并且可以打印我的变量。我的结果消息表明,当我执

  • 我正在使用JavaFX属性的模型实体consitiing witch允许我更改单个位置上的值,将它们绑定到UI,并在模型实体数组中添加带有额外条件的更改的监听器(惟一值等)。 我必须将模型存储在数据库中,所以问题如下: 注意:一些可绑定属性根本不必持久化。

  • > 如何以编程方式从log4j2中的记录器中删除appender?-即使我删除appender,它仍然发送日志 如何根据java系统属性有条件地添加log4j2附加器?-appender忽略通过:export log_level=off从命令行传递变量,并始终使用默认值,在本例中均为如此。脚本解决方案也有同样的问题 -level属性不接受动态值,并引发无法将“${sys:loglevel}”强制转

  • 如何使用Firebase获取用户名属性,我不知道如何获取用户名、电话号码等属性,我只知道如何获取用户名属性,但不知道用户名属性,也许你可以从下面的Firebase数据库中了解。 这是我的密码

  • 我试图创建一个应用程序,在这个应用程序中,我可以在特定的用户帐户中获取/设置数据,我被Firebase所吸引。 我遇到的问题是,当我的结构如下所示时,我不知道如何针对特定的用户数据: 我环顾四周,找不到任何关于如何访问单个数据的信息,更别提当它们的ID是随机散列的时候了。 我该如何根据用户的名字来获取用户的信息呢?如果有更好的方法,请告诉我!