Using Google Firebase Remote Config without Google Play Services?

旧时模样 提交于 2020-08-07 07:54:40

问题


Is it possible to use Firebase Remote Config without having Google Play Services installed (aosp) on the device?

I did follow this setup in my android project: (via https://firebase.google.com/docs/android/setup):

  1. added classpath 'com.google.gms:google-services:4.3.3' into main gradle file
  2. added implementation 'com.google.firebase:firebase-config:19.1.3' and 'apply plugin: 'com.google.gms.google-services'' into app gradle file

It does compile, but when I initially start the app fetchAndActivate does not succeed, because task results with after calling 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");

//
                    }
                });

    }

回答1:


firebaser here

Unfortunately Remote Config currently depends on having Google Play services installed on the device.

The dependency is indirect though, and transitive, which is why I (actually: we, as multiple folks went down this same rabbit hole) initially overlooked it.

The good news is that many Firebase services are moving to a newer service called Firebase Installation Service, which no longer depends on Google Play services. But there's no timeline for when Remote Config will no longer have that dependency.

Previous answer that was wrong 😞:

I asked around, and it seems that Remote Config does not depend on Google Play Services on the device. So you should be able to use it on an AOSP device.

However, a lot of use-cases for Remote Config depend on targeting users based on Analytics events and properties. And since Analytics is not part of Firebase's open-source SDKs, you won't be able to target users on AOSP with Analytics properties. The other targeting capabilities of Remote Config will work for everyone, but you'll only be able to target users based on Analytics events/properties if they are on a device with Google Play Services.




回答2:


The latest version of Firebase remote-config [19.2.0] seems to be working on devices with no Google PlayServices. I'm using it with Firebase analytics [17.4.4]. I could still see those PlayServices warnings in logcat but the feature seems to be working.

The remote-config [19.2.0] release notes at the url below states->"Migrated to use the Firebase installations service directly instead of using an indirect dependency via Firebase Instance IDs."
So, it's possible that this did the trick.
https://firebase.google.com/support/release-notes/android#remote-config_v19-2-0




回答3:


This appears to have been introduced in newer versions of remote config. The last version that works for me on devices without Google Play Services is 19.1.0. Would be good to make sure that the Firebase folks are aware of this so it can be fixed in future versions.

I received this information from Firebase support: The Firebase Installation Service mentioned in the Stack Overflow post you've shared is not enough to remove the dependency on Play Services, so there are no current plans to address this.



来源:https://stackoverflow.com/questions/60741260/using-google-firebase-remote-config-without-google-play-services

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!