Android Firebase接入(六)-- Firebase远程配置(Remote Config)

Firebase远程配置就是在Firebase后台存储一些键值对,然后在app内向Firebase请求并使用这些键值对。当我们需要更改这些键值对时,就在Firebase后台更改,当app下一次向Firebase请求时,获取到的就是我们更改后的值。这样就实现了动态更新app配置。

官方文档:https://firebase.google.com/docs/remote-config/android?authuser=0

一、配置Android应用并下载google-service.json文件:

Firebase控制台新建项目(需要使用Google账户登录),配置好Android应用后下载google-service.json文件,将google-service.json文件添加到项目的app目录下即可。

(1)添加项目时填写项目名称、项目id使用默认的就可以、选择国家、底部的两个勾选项要么都选,要么都不选,表示是否和Google分享你的app分析数据,最后点击创建项目即可。

(2)Firebase的项目不止是为Android打造的,可以在项目中添加Android应用,IOS应用,网页应用。那么我们先要为这个项目添加一个Android应用:




选择“将Firebase添加到您的安卓应用”,然后填写app包名,app别名可以选填,调试签名证书SHA1,调试签名证书SHA1可以通过命令行获取:

Mac环境:

keytool -exportcert -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore


Windows环境:

keytool -exportcert -list -v \
-alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore


输入命令行后需要输入密钥库口令,默认的密钥库口令是android

获取正式签名证书SHA1的命令行:

keytool -exportcert -list -v \
-alias <your-key-name> -keystore <path-to-production-keystore>


在<your-key-name>填入密钥名,<path-to-production-keystore>填入密钥路径,然后输入密钥库口令即可获取SHA1。

4.添加好Android应用后,下载google-service.json文件,添加到项目的app目录下

二、添加Remote Config依赖:

1.项目级的build.gradle中,添加:

classpath 'com.google.gms:google-services:4.0.1'



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'

3.打开Firebase控制台,转到Remote Config模块,点击添加您的首个参数:


4.输入键值对,点击添加参数:


5.点击发布更改并确认:


6.在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的基本使用。

猜你喜欢

转载自blog.csdn.net/AlpinistWang/article/details/80934464
今日推荐