Firebase-config 在android中的使用
说明
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/
Firebase-config 在android中的使用的更多相关文章
- Android中数据存储(一)
国庆没有给国家添堵,没有勾搭妹子,乖乖的写着自己的博客..... 本文将为大家介绍Android中数据存储的五种方式,数据存储可是非常重要的知识哦. 一,文件存储数据 ①在ROM存储数据 关于在ROM ...
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- android 中获取视频文件的缩略图(非原创)
在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...
- Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)
原文地址:http://menxu.lofter.com/post/164b9d_3ebf79 package com.teamkn.base.utils; import java.io.ByteAr ...
- 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
原文:关于Android中图片大小.内存占用与drawable文件夹关系的研究与分析 相关: Android drawable微技巧,你所不知道的drawable的那些细节 经常会有朋友问我这个问题: ...
- Android中加载位图的方法
Android中加载位图的关键的代码: AssetManager assets =context.getAssets(); //用一个AssetManager 对象来从应用程序包的已编译资源中为工程加 ...
- Android笔记——Android中数据的存储方式(一)
Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...
- Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)
一.前言 在之前已经详细介绍了Android中的一种视频数据源:Camera,不了解的同学可以点击进入:Android中Camera使用详解 ,在这篇文章中我们介绍了如何采集摄像头的每一帧数据,然后进 ...
- Android 中View的绘制机制源代码分析 三
到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...
- Android 中的WiFi剖析
Android的WiFi 我们通常看到WiFi的守护进程wpa_supplicant在我们的ps的进程列表中,这个就是我们的wifi守护进程.wpa_supplicant在external/wpa_s ...
随机推荐
- python-pyppeteer模块使用汇总
一.简单代码示例 import asyncio from pyppeteer import launch async def main(): browser = await launch() page ...
- .netcore控制台->定时任务Quartz
之前做数据同步时,用过timer.window服务,现在不用那么费事了,可以使用Quartz,并且配置灵活,使用cron表达式配置XML就可以.我用的是3.0.7版本支持.netcore. 首先创建一 ...
- flutter 打包apk
打包的具体操作,可以参照官网,只是官网没有那么细 1.修改AndroidManifest.xml 2.构建配置 可以跳过 3.构建签名 4.创建 key.properties 5.配置混淆 6.修改 ...
- Violet音乐社区需求分析说明书
目录 一.引言 1.1 编写目的 1.2 开发背景 1.3 开发工具 二.项目需求 2.1 角色定义 2.2 模块划分 2.3 功能概述 2.4 数据流图 三.前端页面 四.软件要求 4.1 性能要求 ...
- css字体标签相关
斜体: i:斜体em:斜体,强调的意思,有特殊含义,尽量用i或者cssfont-style:字体风格 normal默认值,italic斜体,oblique倾斜的字体 粗体: b,strong:粗体fo ...
- Thread <number> cannot allocate new log, sequence <number>浅析
有时候,你会在ORACLE数据库的告警日志中发现"Thread <number> cannot allocate new log, sequence <number> ...
- 'Specifying a namespace in include() without providing an app_name '
'Specifying a namespace in include() without providing an app_name ’ 从include()函数可以看出来,这个函数有两个参数,一个a ...
- C语言快速入门一:win10系统环境搭建
0.搭建环境:WIN10 64位 1.下载minGW.zip编译器 2.解决上述文件,配置环境变量 3.配置变成后验证:打开cmd命令行,输入gcc -v 提示以下内容,说明编译器安装成功 D:\mm ...
- SpringBootTest MockMVC绑定session(需要登陆的接口)
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testing spring-te ...
- C语言中,字符型数字与常数型数字的加减实现
char in-str[10],out-str[10]; for(int i=0;i<10;i++) { out-str[i]=9-(in-str[i]-'0')+'0'; }