をOnCompleteListenerトリガしません:FirebaseRemoteConfig.fetchは()私はFirebaseリモートコンフィグを実装しようとしているたびに
override fun onCreate(savedInstanceState: Bundle?) {
val configSettings = FirebaseRemoteConfigSettings.Builder().setDeveloperModeEnabled(BuildConfig.DEBUG).build()
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance()
mFirebaseRemoteConfig.setConfigSettings(configSettings)
mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults)
fetchRemoteConfig()
}
private fun fetchRemoteConfig() {
var cacheExpiration = 3600L
if (mFirebaseRemoteConfig.info.configSettings.isDeveloperModeEnabled) {
cacheExpiration = 0L
}
mFirebaseRemoteConfig.fetch(cacheExpiration)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d(TAG, "Remote config fetch succeeded")
mFirebaseRemoteConfig.activateFetched()
} else {
Log.d(TAG, "Remote config fetch failed - ${task.exception?.message}")
}
setupView()
}
}
private fun setupView() {
val text = mFirebaseRemoteConfig.getString("my_text")
//...
}
私の問題はOnCompleteListenerが常に呼び出されないということです。 私のアプリケーションを何回か閉じたり開いたりすると、setupView()が必ずしも起動されるわけではありません。
OnCompleteListenerは常にrightと呼ばれる必要がありますか?キャッシュを打っていても?
EDIT:デベロッパーモードを無効にしても、動作は同じです。場合によってはコールバックがトリガーされることもあります。
私はもちろんのデバッグのこの同じproblem..butを持って取得することはできません何が起こっているのかを見て、私はどのようにログを立てるかを理解できません。 – danb
あなたはこのログメッセージ "FirebaseInstanceId:topic sync succeeded"が表示され、フェッチへの後続の呼び出しが機能するまで、oncompleteは呼び出されないようです。 – danb
@danbどこでfetch()を起動しましたか? onCreate()、onResume()、他の場所では?私はonResume()でfetch()を動かしたので、今はうまくいくようです。ところで、あなたのような私の回避策は働いています。なぜなら、fetch()がトリガされる瞬間を遅らせるからです。たぶん、fetch()を早く呼び出すと、リモート設定を取得できなくなる可能性があります。 – guillaume