说明

firebase-config提供远程配置方案,可以通过远程控制app的基本配置方案更换工作。如在特定时间更换不同的App基础配色反感,更换基础显示图标等。

firebase-config

firebase-config 的使用也较为简单,首先为了让其支持firebase-config支持远程配置,需要在firebase官网创建一个app并配置其remote config模块。然后需要在你创建的包名的apk中配置支持firebase sdk并添加firebase-config依赖,如此即可正常使用firebase-config功能。如下,会仔细介绍具体的操作工程和如何配置一个简单的firebase-config.

1. 创建firebase 应用

首先需要登陆firebase官网,创建一个firebase应用。

如上,首先创建一个app testOnly,创建成功后会进入app的配置节目,点击Overview,在右侧内容部分选择将firebase添加到您的* Android * 应用中,配置应用包名以及签名证书的sha1.配置完成后会生成一个 * google-services.json * 文件,需要下载下来放在你创建应用工程的根目录,as的app目录下,该文件是为了让应用 添加firebase支持。

  • 配置参数

完成基础的firebase支持配置后,选择左侧的Remote Config 选项卡,创建远程配置参数(参数类型的获取可以自定义通过语言、应用版本等定义参数值),界面如下:

添加或者修改完毕后通过点击右上侧发布更新用于更新firebase-config配置并应用到配置.

2. 配置并使用在android 应用

该部分分为两个步骤:一个是添加配置,一个是app调用。

  • 添加配置

    配置添加首先为了让其支持firebase,需要添加firebase插件的classpath并添加plugin,其次是添加firebase-config依赖,基本配置在build.gralde中如下:
buildscript {
repositories {
jcenter()
mavenLocal()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.1.0' //firebase 添加 } dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
......
compile 'com.google.firebase:firebase-config:11.0.1' //firebase-config依赖
......
} apply plugin: 'com.google.gms.google-services' //添加插件,注意放在build.gradle底部.
  • 使用

使用较为简单,由于使用的时候可能村子阿由于网络或者其他因素导致无法获取远程配置信息的情况。所以,我们需要在使用前创建一个默认的配置参数。在res/xml下创建一个默认配置文件,名称可以自定义,配置内容如下:

<?xml version="1.0" encoding="utf-8"?>
<!-- START xml_defaults -->
<defaultsMap>
<entry>
<key>type</key>
<value>其他</value>
</entry>
<entry>
<key>baseColor</key>
<value>#aaaaaa</value>
</entry>
</defaultsMap>

接下来就可以通过在java中获取配置信息来随即使用了,获取配置信息如下:


private void getRemoteConfig(){ //获取配置实例
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
//创建配置setting,可以在此设置开发者模式,增加获取成功率
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.build();
//设置配置settings
mFirebaseRemoteConfig.setConfigSettings(configSettings);
//设置默认配置文件,就是上面的配置文件
mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defautls); //通过fetch拉取远程配置资源后接参数时间,添加完成监听,也可通过添加addOnSuccessListener等监听
mFirebaseRemoteConfig.fetch(0).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
//获取远程配置成功
if (task.isSuccessful()){
//添加远程配置获取激活方法,可正常访问远程配置信息,必须调用
mFirebaseRemoteConfig.activateFetched();
Log.e("test","get success.");
}else { //获取远程配置失败
Log.e("test","get failed. exception:"+task.getException().toString());
}
//或其基本配置信息
String type= mFirebaseRemoteConfig.getString("type");
String type= mFirebaseRemoteConfig.getString("baseColor"); }
}); }

如上,即为一个完成的firebase-config创建、配置、使用的过程了。也可以直接访问firebase-cofig官网配置文档,地址为:https://firebase.google.com/docs/remote-config/

Enjoytoday,EnjoyCoding

Firebase-config 在android中的使用的更多相关文章

  1. Android中数据存储(一)

    国庆没有给国家添堵,没有勾搭妹子,乖乖的写着自己的博客..... 本文将为大家介绍Android中数据存储的五种方式,数据存储可是非常重要的知识哦. 一,文件存储数据 ①在ROM存储数据 关于在ROM ...

  2. Android中Path类的lineTo方法和quadTo方法画线的区别

    转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...

  3. android 中获取视频文件的缩略图(非原创)

    在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...

  4. Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)

    原文地址:http://menxu.lofter.com/post/164b9d_3ebf79 package com.teamkn.base.utils; import java.io.ByteAr ...

  5. 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析

    原文:关于Android中图片大小.内存占用与drawable文件夹关系的研究与分析 相关: Android drawable微技巧,你所不知道的drawable的那些细节 经常会有朋友问我这个问题: ...

  6. Android中加载位图的方法

    Android中加载位图的关键的代码: AssetManager assets =context.getAssets(); //用一个AssetManager 对象来从应用程序包的已编译资源中为工程加 ...

  7. Android笔记——Android中数据的存储方式(一)

    Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...

  8. Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)

    一.前言 在之前已经详细介绍了Android中的一种视频数据源:Camera,不了解的同学可以点击进入:Android中Camera使用详解 ,在这篇文章中我们介绍了如何采集摄像头的每一帧数据,然后进 ...

  9. Android 中View的绘制机制源代码分析 三

    到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...

  10. Android 中的WiFi剖析

    Android的WiFi 我们通常看到WiFi的守护进程wpa_supplicant在我们的ps的进程列表中,这个就是我们的wifi守护进程.wpa_supplicant在external/wpa_s ...

随机推荐

  1. Java操作数据库——在JDBC里使用事务

    Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...

  2. C# 利用itextsharp、Spire配合使用为pdf文档每页添加水印

    下载类库: 直接下载 引入类库 功能实现 using iTextSharp.text.pdf; using Spire.Pdf; using Spire.Pdf.Graphics; using Sys ...

  3. 轻松搞定项目中的空指针异常Caused by: java.lang.NullPointerException: null

    大家在项目测试过程中,是不是经常会碰到这个空指针异常呢Caused by: java.lang.NullPointerException: null 当大家遇到这个问题,大家是怎么处理?自己解决还是让 ...

  4. Vue组件通信的几种方法

    上一节说到,vue.js是允许子组件通过props接受父组件的信息,但是不允许父组件通过props接受子组件的信息 1. $emit()和on 当子组件需要向父组件传递数据时,就要用到自定义事件. 使 ...

  5. Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析

    Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”.想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5. 一.最终实现的sql语 ...

  6. Linux—vi/vim命令详解

    如何在 vi 里搜索关键字 在命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 "/" 然后输入你要查找的关键字敲回车就行了. 如果你要继续查找此关键字,敲字符 ...

  7. (办公)访问其他系统接口httpClient,异步访问

    访问其他系统接口httpClient,但是都是同步的,同步意味当前线程是阻塞的,只有本次请求完成后才能进行下一次请求;异步意味着所有的请求可以同时塞入缓冲区,不阻塞当前的线程; httpClient请 ...

  8. linux的路由功能实现

    参考URL: https://blog.csdn.net/chengqiuming/article/details/80140768 一,启用Linux的路由转发功能. 二,新建veth pair 三 ...

  9. 03-Node.js学习笔记-系统模块path路径操作

    3.1为什么要进行路径拼接 不同操作系统的路径分隔符不统一 /public/uploads/avatar window 上是 \ / 都可以 Linux 上是 / 3.2路径拼接语法 path.joi ...

  10. Re-DD-Hello

    题目地址 https://dn.jarvisoj.com/challengefiles/1.Hello.12b9bde7c0c8558a9da42aa1798cafc8 用IDA打开,找到算法函数 写 ...