Android Firebase远程配置初始提取不会返回值

时间:2016-08-11 13:40:06

标签: android firebase firebase-remote-config

首次首次打开应用时,我使用Firebase远程配置来获取数据。但问题是我无法在第一次启动应用程序时获取数据。 onComplete()方法触发但不返回任何值。如果我关闭应用程序并再次运行,它将从远程配置中返回值。

尝试在onCreate()onStart()onResume()中调用fetch(),给它第二次延迟,postDelay()仍然相同,初始提取始终为空。我知道,Remote Config有setDefaults()方法来存储默认值,但在app中设置默认值并不是我想要的。

这是Remote Config的工作方式还是我做错了什么?我找到的唯一解决方法是在fetch()中添加onResume()并在onCreate()内再次调用onResume()。结果调用onResume()两次。首次采用Android系统,第二次采用代码。

还有其他方法可以在第一次运行时强制远程配置获取数据吗?

更新

onComplete()内首先,我必须先致电firebaseRemoteConfig.activateFetched();,然后再从中获取新值。

4 个答案:

答案 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 并成功