【问题标题】:problem at the first launch RemoteConfig with conditions首次启动 RemoteConfig 时出现问题
【发布时间】:2019-05-08 10:18:54
【问题描述】:

我遇到了 RemoteConfig 具有条件的参数的问题。大多数时候,我会在第一个应用程序打开时获得默认值。之后,我得到其他条件值。我的条件是来自0 -> 10, 10 -> 20, 20 -> 30,...., 90 -> 100User in random percentile。在我看来,它永远不应该是默认值(因为条件覆盖了 100% 的用户百分位数)。我确实打电话给fetchAndActive() 并在task.isSuccessful() 之后打电话给mFirebaseRemoteConfig.getString()。有什么想法吗?

【问题讨论】:

    标签: android firebase firebase-remote-config


    【解决方案1】:

    一个多星期前我遇到了同样的问题,经过一番谷歌搜索后,我发现的唯一类似的事情就是这个问题。今天我终于找到了原因并实施了简单的解决方法。 长话短说,Firebase SDK 初始化中存在与“FirebaseInstanceId”生成相关的竞争条件:在初始启动期间,Firebase 在生成 AppInstanceId 之前执行远程配置请求。由于此后端无法应用与远程参数相关的某些条件,例如“随机百分位用户”。 为了解决这个问题,我们需要在初始化 SDK 之前生成应用实例 ID。所以代码可能是这样的:

    FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
        @Override
        public void onComplete(@NonNull Task<InstanceIdResult> task) {
            //init firebase remote config here
        }
    });
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      经过很多天的搜索,但没有任何线索,我不得不采取一种肮脏而棘手的方法来解决我的问题:在onCreate 1s 后获取并加载远程配置:

      Observable.timer(1, TimeUnit.SECONDS)
                          .observeOn(AndroidSchedulers.mainThread())
                          .doOnNext(time ->{
                              fetchAndActiveRemoteConfig();
                          })
                          .subscribe();
      

      P/s:它有效,但我不知道它为什么有效。

      【讨论】:

      • 我遇到了同样的问题,请帮我解决。这对我没有帮助。
      • 我尝试了很多解决方法,只有这个有效
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 2017-12-03
      • 1970-01-01
      • 2017-07-24
      • 2016-11-20
      相关资源
      最近更新 更多