在应用程序上更改用户属性后,Firebase远程配置值不一致



所以我尝试使用自定义用户属性(user_code)作为我在Firebase远程配置中的功能切换的条件。我的用例是,我设置自定义用户属性,并在成功登录时获取和激活(通过fetchAndActivate)远程配置,并在注销时通过将null传递给setUserProperty来重置用户属性。如果用户已经登录,我也可以在应用程序启动时设置它,以及获取和激活远程配置。

// on log in success
FirebaseAnalytics.getInstance(context).setUserProperty("user_code", someUserCode)
firebaseRemoteConfig.fetchAndActivate().addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.w(TAG, "Config params updated and activated: ${task.result}")
} else {
Log.w(TAG, "Config params update failed")
}
}

我设置了一个条件,如果user_code用户属性等于abcd,我应该得到的远程标志值为真,如果user_code等于其他东西,则为假。当我使用user_code等于abcd的帐号登录时,我可以确认确实是这样。如果我尝试注销并使用不同的帐户登录,我将获得正确的功能切换值(false)。但是,当我尝试再次使用abcd作为user_code的帐户登录时,仍然使用以前的远程配置值,即,功能切换仍然是假的,当它应该是真的。然而,当我重新启动我的应用程序,我得到更新的值(标志现在等于true)。

在应用程序启动期间,如果用户登录,我设置用户属性并初始化Firebase远程配置并调用fetchAndActivate:

//inside App class
if (someUserCode != null) {
FirebaseAnalytics.getInstance(context).setUserProperty("some_user_code", someUserCode)
}
with(firebaseRemoteConfig) {
setConfigSettingsAsync(
remoteConfigSettings {
minimumFetchIntervalInSeconds = 0L
}
)
setDefaultsAsync(R.xml.remote_config_defaults)
fetchAndActivate()
}

我一直看到这种行为登录和注销多次。获得更新的远程配置值的唯一方法是重新启动应用程序。我想在登录后获得更新的远程配置,而不仅仅是在应用程序重新启动时。有人遇到过这种情况吗?

我联系了Firebase客户支持,他们澄清说我的用例不能与Firebase远程配置一起工作。快速连续获取远程配置值将受到限制。