目录
简介
Firebase远程配置是指在Firebase后台存储一些键值对,在app中向Firebase请求并使用这些键值对。当我们需要更改这些键值对时,在Firebase后台更改即可。当app下一次向Firebase请求时,获取到的就是我们更改后的值。这样就实现了动态更新app配置。
官方文档:https://firebase.google.com/docs/remote-config/android?authuser=0
接入
一、配置Android应用并下载google-service.json文件
配置步骤见本系列第一篇文章:Android Firebase接入(序)–Firebase简介以及Firebase官方Demo的使用中的 “配置Android应用并下载google-service.json文件”
二、添加Remote Config依赖
1.项目级的build.gradle中,添加:
classpath 'com.google.gms:google-services:4.1.0'
2.app模块下的build.gradle中,添加:
dependencies {
...
implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.firebase:firebase-config:15.0.0'
}
apply plugin: 'com.google.gms.google-services'
三、在Firebase控制台配置键值对
打开Firebase控制台,转到Remote Config模块,点击添加您的首个参数:
到达以下界面:
输入键值对,点击添加参数,到达以下界面:
点击发布更改并确认。
四、在app中获取Firebase远程配置的键值对
在MainActivity中:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private TextView text;
private FirebaseRemoteConfig firebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.text);
firebaseRemoteConfig.fetch()
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
firebaseRemoteConfig.activateFetched();
Log.d(TAG, "my_key: "+firebaseRemoteConfig.getString("my_key"));
}
});
}
}
查看Log控制台:
/com.simple.firebaseremoteconfig D/MainActivity: my_key: my_value
Firebase拉取远程配置后,拉取的键值对默认在本地缓存12小时,12小时后才去重新拉取。如果想要修改缓存时间,在fetch中添加时间参数即可,使用firebaseRemoteConfig.fetch(0),远程配置的值就会实时更新:
firebaseRemoteConfig.fetch(0)
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
firebaseRemoteConfig.activateFetched();
Log.d(TAG, "my_key: "+firebaseRemoteConfig.getString("my_key"));
}
});
五、修改远程配置
在Firebase控制台的RemoteConfig模块更改value值:
点击更新,发布更改并确认。
重新运行程序,在Log控制台看到如下输出:
/com.simple.firebaseremoteconfig D/MainActivity: my_key: my_value_changed
以上,就是Firebase Remote Config的基本使用。