首次首次打开应用时,我使用Firebase远程配置来获取数据。但问题是我无法在第一次启动应用程序时获取数据。 onComplete()
方法触发但不返回任何值。如果我关闭应用程序并再次运行,它将从远程配置中返回值。
尝试在onCreate()
,onStart()
,onResume()
中调用fetch(),给它第二次延迟,postDelay()
仍然相同,初始提取始终为空。我知道,Remote Config有setDefaults()
方法来存储默认值,但在app中设置默认值并不是我想要的。
这是Remote Config的工作方式还是我做错了什么?我找到的唯一解决方法是在fetch()
中添加onResume()
并在onCreate()
内再次调用onResume()。结果调用onResume()两次。首次采用Android系统,第二次采用代码。
还有其他方法可以在第一次运行时强制远程配置获取数据吗?
更新
在onComplete()
内首先,我必须先致电firebaseRemoteConfig.activateFetched();
,然后再从中获取新值。
答案 0 :(得分:0)
我知道这是一个老问题 - 但我遇到了与提问者完全相同的问题。经过几天的调查,我找到了答案,所以我会在这里发布,以帮助其他有困难的人。
要检查的第一件事是您的配置设置是在Firebase中发布的。进行更改后,控制台右上角有一个“发布”按钮。
我已经关注了如何在Unity中配置FireBases远程配置的大量教程和指南,但是尽管调用了ActivateFetched但我没有得到任何结果。 在投入大量精力试图弄清楚为什么没有数据被返回后,我偶然发现了这个帖子:https://github.com/firebase/quickstart-unity/issues/9
事实证明,RemoteConfig在Unity中不起作用,只会使用默认值。要实际使用远程配置,您必须进行构建并将其部署到目标设备上。
在我的Android设备上,我的所有远程配置都已成功检索
答案 1 :(得分:0)
检查几点:
一旦在Firebase仪表板中创建了新变量,就将其发布
将缓存时间设置为0的抓取
FirebaseRemoteConfig.getInstance().fetch(0).
答案 2 :(得分:0)
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder().build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings)
.addOnCompleteListener(task -> mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(activity, task1 {
// now cache is updated you can fetch values
String value = mFirebaseRemoteConfig.getString("key");
}));
配置设置完成后开始获取值
只需在应用启动时执行此操作,然后直接在其他任何地方获取值即可(例如:
mFirebaseRemoteConfig.getString("key");
)
答案 3 :(得分:0)
感谢 Pankaj kumar 的回答,我设置了 firebase.remoteConfig().settings.minimumFetchIntervalMillis = 0
并成功