我正在尝试使用Firebase的新远程配置特性来拥有一个远程配置参数,但我遇到了一个问题。
我正在应用程序的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");
找到解决方案!见下文
我遇到了“静默完成”的事情--我调用“提取”,但onComplete、onSuccess或onFailure监听器从不触发。我尝试将其移动到Create上的一个活动中,但仍然没有发生任何事情,因此,配置项从未从服务器加载。我已经启用了开发人员模式,并且正在调用缓存值为0的fetch。
我(有一次)在行“public void onComplete(@nonnull Task Task){”上设置了一个断点,它被击中了,然后我能够执行该操作,并且onComplete被激发。然后我无法以任何其他方式再现相同的结果,包括(我想)第二次执行相同的操作。
这似乎是一个计时或并发问题,但这没有什么意义,因为这是一个异步调用。
变通办法
如果您从活动#onResume(或者,我想是从活动#onStart)中提取,那么它工作得很好。从activity#onCreate或application#onCreate中调用fetch会导致一个似乎从未得到处理的调用,事实上,在fetch开始后,应用程序的性能明显下降,所以我认为有一个looper在运行或其他什么。*
如果您真的希望它从应用程序#onCreate运行(我就是这样做的),那么这似乎也是可行的:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Run mFirebaseRemoteConfig.fetch(timeout) here, and it works
}
}, 0);
我正在尝试设置Firebase远程配置。在我的项目中一个重要的部分是正确的定位。所以我在Console中设置了不同语言的条件。但现在我想将默认值设为XML。github上的示例非常简单。没有任何条件的值就很少。文档根本没有描述这种格式。所以我想知道是否可以在defaults.xml中指定我的所有本地化,以及我如何做到这一点。
null 知道为什么我的远程值在第一次调用时没有被提取吗?
Firebase控制台支持配置远程配置参数的简单方法。 在我们的应用程序中,每个用户都有不同的远程配置,这些配置是在我们自己的门户网站上设置的。 有什么API可以让我把配置从我自己的门户推到Firebase远程配置服务器,然后在android应用程序上使用远程配置库来获得新的配置吗?
Firebase远程配置有其他选择吗?我需要为中国市场提供一个应用程序,我不确定它是否会起作用
我正在尝试设置一个SpringCloudConfig服务器,它使用SSH密钥从GitRepo获取配置。它使用SpringBootVersion2.1运行。0.0版本和springCloudVersion格林威治。M3。 当在下面的配置中使用带有用户名和密码的https bitbucket URI时,配置服务工作正常,没有问题: 但我们必须迁移到使用ssh密钥,而不是使用以下配置的用户名和密码: i