6
votes

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

//
                    }
                });

    }
3

3 Answers

5
votes

firebaser here

Firebase Remote Config no longer depends on Google Play Services, and can be used on any Android installation.

For an up to date list of what Firebase services work without Play services, see Dependencies of Firebase Android SDKs on Google Play services in the Firebase documentation.

Previous answer that was outdated:

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.

6
votes

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

0
votes

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.