gpt4 book ai didi

android - Firebase 远程配置 : Can't read any values, 但获取成功

转载 作者:IT老高 更新时间:2023-10-28 21:37:45 25 4
gpt4 key购买 nike

我正在尝试使用 Firebase 的新远程配置功能获得远程配置参数,但遇到了问题。

这是我的远程配置控制台:remote config console

我正在我的应用程序的 onCreate() 中进行获取和更新:

final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
remoteConfig.fetch().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
remoteConfig.activateFetched();
}
}
});

这就是我的阅读方式:

FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
String value = remoteConfig.getString("active_subscriptions");

值返回 null。

如果我调用remoteConfig.getInfo().getLastFetchStatus(),它会返回LAST_FETCH_STATUS_SUCCESS,所以看起来获取成功了。

知道为什么我的值为空白吗?

最佳答案

找到解决方法!见下文

我遇到了“静默完成”的事情——我称之为“获取”,但 onComplete、onSuccess 或 onFailure 监听器永远不会触发。我尝试将它移动到一个 Activity onCreate,但仍然没有发生任何事情,因此,配置项永远不会从服务器加载。我已经启用了开发者模式,并且正在调用缓存值为 0 的 fetch。

我能够(曾经)在“public void onComplete(@NonNull Task task) {”行上放置一个断点,该断点被击中,然后我能够单步执行并触发 onComplete。然后我无法以任何其他方式重现相同的结果,包括第二次做同样的事情(我认为)。

似乎是时间或并发问题,但这没什么意义,因为这是一个异步调用。

解决方法

如果您从 Activity#onResume(或者,我猜是 Activity#onStart)中获取,它可以完美运行。从 Activity#onCreate 或 Application#onCreate 调用 fetch 会导致看似从未处理过的调用,实际上,在 fetch 开始后应用程序的性能会明显下降,所以我认为有一个 looper 正在运行或其他什么。*

解决方法 #2

如果您真的希望它从 Application#onCreate(我这样做)运行,这似乎也可以:

new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Run mFirebaseRemoteConfig.fetch(timeout) here, and it works
}
}, 0);

关于android - Firebase 远程配置 : Can't read any values, 但获取成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37311582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com