1、在项目已经引入firebase的情况下增加远程参数功能(项目版本为非AndroidX)
implementation 'com.google.firebase:firebase-config:16.0.0'
public class FirebaseRemoteUtils {
private static final String TAG = FirebaseRemoteUtils.class.getSimpleName();
private static final String FIREBASE_REMOTE_CONFIG_PARA = "subsingle";//firebase控制台配置的参数名
public static void initFireBaseRemoteConfig(Activity activity) {
FirebaseRemoteConfig firebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
firebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);//设置默认值
FirebaseRemoteConfigSettings.Builder builder = new FirebaseRemoteConfigSettings.Builder();
FirebaseRemoteConfigSettings firebaseRemoteConfigSettings = builder.setDeveloperModeEnabled(BuildConfig.DEBUG).build();
int cachTime = 3600;
if (firebaseRemoteConfigSettings.isDeveloperModeEnabled()) {
cachTime = 0;
}
firebaseRemoteConfig.setConfigSettings(firebaseRemoteConfigSettings);
EdLog.e(TAG, "--222-" + firebaseRemoteConfig.getString(FIREBASE_REMOTE_CONFIG_PARA));
firebaseRemoteConfig.fetch(cachTime).addOnCompleteListener(activity, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
EdLog.e(TAG, "获取远程firebase参数成功");
firebaseRemoteConfig.activateFetched();
} else {
EdLog.e(TAG, "获取远程firebase参数失败");
}
EdLog.e(TAG, "--444-" + firebaseRemoteConfig.getString(FIREBASE_REMOTE_CONFIG_PARA));
Prefs.putPref(activity, FIREBASE_REMOTE_CONFIG_PARA, firebaseRemoteConfig.getString(FIREBASE_REMOTE_CONFIG_PARA));
}
});
}
public static boolean getFirebaseRemoteSubSingle(Context context) {
String result = Prefs.getPref(context, FIREBASE_REMOTE_CONFIG_PARA);
if(TextUtils.isEmpty(result)){
return true;
}
return TextUtils.equals("new", result);//firebase控制台配置参数对应的value值
}
}
2、在项目已经引入firebase的情况下增加远程参数功能(项目版本为AndroidX)
implementation 'com.google.firebase:firebase-config:18.0.0'
public class FirebaseRemoteUtils {
private static final String TAG = FirebaseRemoteUtils.class.getSimpleName();
private static final String FIREBASE_REMOTE_CONFIG_PARA = "subsingle";//firebase控制台配置的参数名
public static void initFireBaseRemoteConfig(Activity activity) {
FirebaseRemoteConfig firebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
firebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);//设置默认值
FirebaseRemoteConfigSettings.Builder builder = new FirebaseRemoteConfigSettings.Builder();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(BuildConfig.DEBUG)
.setMinimumFetchIntervalInSeconds(3600)
.build();
firebaseRemoteConfig.setConfigSettings(configSettings);
EdLog.e(TAG, "--222-" + firebaseRemoteConfig.getString(FIREBASE_REMOTE_CONFIG_PARA));
firebaseRemoteConfig.fetchAndActivate().addOnCompleteListener(activity, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
EdLog.e(TAG, "获取远程firebase参数成功");
firebaseRemoteConfig.activateFetched();
} else {
EdLog.e(TAG, "获取远程firebase参数失败");
}
EdLog.e(TAG, "--444-" + firebaseRemoteConfig.getString(FIREBASE_REMOTE_CONFIG_PARA));
Prefs.putPref(activity, FIREBASE_REMOTE_CONFIG_PARA, firebaseRemoteConfig.getString(FIREBASE_REMOTE_CONFIG_PARA));
}
});
}
public static boolean getFirebaseRemoteSubSingle(Context context) {
String result = Prefs.getPref(context, FIREBASE_REMOTE_CONFIG_PARA);
if(TextUtils.isEmpty(result)){
return true;
}
return TextUtils.equals("new", result);//firebase控制台配置参数对应的value值
}
}
3、res/xml 下的remote_config_defaults文件
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>subsingle</key>
<value>new</value>
</entry>
</defaultsMap>