在没有 Google Play 服务的情况下使用 Google Firebase 远程配置?

ico*_*din 6 android firebase firebase-remote-config

是否可以在设备上未安装 Google Play 服务 (aosp) 的情况下使用 Firebase 远程配置?

我确实在我的 android 项目中遵循了这个设置:(通过https://firebase.google.com/docs/android/setup):

  1. 将类路径 ' com.google.gms:google-services:4.3.3 ' 添加到主 gradle 文件中
  2. 将实现“ com.google.firebase:firebase-config:19.1.3 ”和“应用插件:”com.google.gms.google-services “”添加到应用程序gradle文件中

它确实可以编译,但是当我最初启动应用程序时,fetchAndActivate 没有成功,因为调用后任务结果为fetch()

MISSING_INSTANCEID_SERVICE(无法获取 Firebase 实例 ID 令牌以进行提取)

  firebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
        FirebaseRemoteConfigSettings.Builder configBuilder = new FirebaseRemoteConfigSettings.Builder();
        configBuilder.setMinimumFetchIntervalInSeconds(3600);


        firebaseRemoteConfig.setConfigSettingsAsync(configBuilder.build());
        HashMap<String, Object> defaults = new HashMap<>();
        defaults.put("variant", "basic");
        startActivity(new Intent(getApplicationContext(), CarLauncherBasic.class));

        firebaseRemoteConfig.setDefaultsAsync(defaults);
        firebaseRemoteConfig.fetchAndActivate()
                .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                    @Override
                    public void onComplete(@NonNull Task<Boolean> task) {
                        if (task.isSuccessful()) {
                            boolean updated = task.getResult();
                            Toast.makeText(MainActivity.this, "Fetch and activate succeeded",
                                    Toast.LENGTH_SHORT).show();

                        } else {
                            Toast.makeText(MainActivity.this, "Fetch failed",
                                    Toast.LENGTH_SHORT).show();
                        }
                        String variant = firebaseRemoteConfig.getString("variant");

//
                    }
                });

    }
Run Code Online (Sandbox Code Playgroud)

小智 6

最新版本的 Firebase remote-config [19.2.0] 似乎适用于没有 Google PlayServices 的设备。我将它与 Firebase 分析 [17.4.4] 一起使用。我仍然可以在 logcat 中看到那些 PlayServices 警告,但该功能似乎正在运行。

位于以下 url 的 remote-config [19.2.0] 发行说明指出->“迁移以直接使用 Firebase 安装服务,而不是通过 Firebase 实例 ID 使用间接依赖项。”
所以,这可能做到了。
https://firebase.google.com/support/release-notes/android#remote-config_v19-2-0


Fra*_*len 5

火力士在这里

Firebase 远程配置不再依赖于 Google Play 服务,可用于任何 Android 安装。

有关 Firebase 服务在没有 Play 服务的情况下工作的最新列表,请参阅Firebase 文档中的 Firebase Android SDK 对 Google Play 服务的依赖关系

上一个过时的答案:

不幸的是,远程配置目前依赖于在设备上安装了 Google Play 服务。

虽然这种依赖是间接的,而且是可传递的,这就是为什么我(实际上:我们,作为很多人都掉进了同一个兔子洞)最初忽略了它。

好消息是,许多 Firebase 服务正在迁移到名为 Firebase 安装服务的较新服务,该服务不再依赖于 Google Play 服务。但是,远程配置何时不再具有这种依赖性并没有时间表。

以前的答案是错误的:

我问了一圈,它似乎是远程配置确实依赖于设备上的谷歌播放服务。因此,您应该能够在 AOSP 设备上使用它。

但是,远程配置的许多用例取决于根据 Analytics 事件和属性定位用户。由于 Analytics 不是 Firebase 开源 SDK 的一部分,您将无法使用 Analytics 属性在 AOSP 上定位用户。Remote Config 的其他定位功能适用于所有人,但您只能根据 Analytics 事件/属性定位用户,前提是他们使用 Google Play 服务的设备。