【发布时间】:2016-12-18 07:00:02
【问题描述】:
我正在使用 Firebase 远程配置在应用首次打开时获取数据。但问题是我无法在应用程序第一次启动时获取数据。 onComplete() 方法触发但不返回值。如果我关闭应用程序并再次运行,它会从远程配置返回值。
尝试在onCreate()、onStart()、onResume() 中调用 fetch(),给了它第二个延迟,postDelay() 仍然相同,初始 fetch 始终为空。我知道,Remote Config 有 setDefaults() 方法在获取默认值之前存储它,但在应用程序中设置默认值不是我想要的。
这是远程配置的工作方式还是我做错了什么?我发现的唯一解决方法是在onResume() 中添加fetch() 并在onCreate() 中再次调用onResume()。结果调用 onResume() 两次。 Android系统第一次,代码第二次。
还有其他方法可以强制远程配置在第一次运行时获取数据吗?
更新
在onComplete() 内部,我必须先调用firebaseRemoteConfig.activateFetched();,然后才能从中获取新值。
【问题讨论】:
-
在fetch监听器的
onComplete()方法中,当fetch没有返回值时task.isSuccessful()是否为真?如果不是,task.getException().getMessage()是什么? -
发现问题。
activateFetched()必须在获取新值之前调用。又一个愚蠢的错误...... -
activateFetched()已弃用,请参阅stackoverflow.com/questions/57494893/…。无论如何,我使用了 Mohammad Alotol 的解决方案。
标签: android firebase firebase-remote-config