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

Using Google Firebase Remote Config without Google Play Services?

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

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

  1. 添加类路径'com.google.gms:google-services:4.3.3'到main gradle 文件
  2. 添加了实现'com.google.firebase:firebase-config:19.1.3'和'应用插件:'com.google.gms.google-services'' 到应用 gradle 文件

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

之后

MISSING_INSTANCEID_SERVICE (Failed to get Firebase Instance ID token for fetch)

  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");

//
                    }
                });

    }

firebaser 在这里

Firebase Remote Config 不再依赖于 Google Play Services,并且可以在任何 Android 安装上使用。

有关 Firebase 服务在没有 Play 服务的情况下工作的最新列表,请参阅 Firebase 文档中的 Dependencies of Firebase Android SDKs on Google Play services

之前的答案已过时:

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

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

好消息是,许多 Firebase 服务正在迁移到名为 Firebase Installation Service 的更新服务,该服务不再依赖于 Google Play 服务。但是,对于 Remote Config 何时不再具有这种依赖性,尚无时间表。

之前的回答是错误的:

我问了一圈,远程配置似乎依赖于Google设备上的播放服务。所以你应该可以在 AOSP 设备上使用它。

但是,远程配置的很多用例都依赖于基于 Analytics 事件和属性的目标用户。由于 Analytics 不是 Firebase 开源 SDK 的一部分,您将无法使用 Analytics 属性在 AOSP 上定位用户。 Remote Config 的其他定位功能适用于所有人,但您只能根据 Analytics events/properties 定位具有 Google Play 服务的设备上的用户。

这似乎已在较新版本的远程配置中引入。在没有 Google Play 服务的设备上适用于我的最后一个版本是 19.1.0。最好确保 Firebase 人员知道这一点,以便可以在未来的版本中修复它。

我从 Firebase 支持部门收到了以下信息: 您分享的 Stack Overflow post 中提到的 Firebase 安装服务不足以消除对 Play 服务的依赖,因此目前没有解决这个问题的计划。

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

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