这里是FireBase官网,使用需要连入外网。
FireBase能做哪些事?
接入firebase,就类似于接入了集成国外第三方登录,友盟Push,友盟分析,阿里云存储,云控制等一系列功能。
接入流程:
1.创建项目
2.添加android应用
3.下载google-services配置文件,放入app根目录下。
4.在项目级build.gradle中配置:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
classpath 'com.google.gms:google-services:4.3.10'
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
// Add the dependencies for the Crashlytics and Analytics libraries
// When using the BoM, you don't specify versions in Firebase library dependencies
implementation("com.google.firebase:firebase-crashlytics")
implementation("com.google.firebase:firebase-analytics-ktx")
implementation 'com.google.firebase:firebase-messaging-ktx'
implementation 'com.google.android.gms:play-services-auth:20.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
在模块下build.gradle中配置:
apply plugin: 'com.android.application'
// Add this line
apply plugin: 'com.google.gms.google-services'
dependencies {
// Import the Firebase BoM
implementation platform('com.google.firebase:firebase-bom:30.1.0')
// Add the dependency for the Firebase SDK for Google Analytics
// When using the BoM, don't specify versions in Firebase dependencies
implementation 'com.google.firebase:firebase-analytics-ktx'
}
在settings.gradle中:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
maven { url 'https://jitpack.io' } //add line
}
}
最后,Sync Now一下,BUILD SUCCESSFUL。
1.app埋点:Analytics
应用内数据上报,帮助分析用户在app内的行为
埋点上报:
var firebaseAnalytics: FirebaseAnalytics = Firebase.analytics
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.APP_OPEN, Bundle().apply {
putString("appid", "1001")
putLong("time", System.currentTimeMillis())
})
2.云消息推送:Firebase Cloud Message
即:FCM,帮助app推送通知
获取消息推送token,然后可以去上报自己服务器,要获取成功token的前提是设备安装了GMS服务,以及外网连接。
private fun getMessageToken() {
FirebaseMessaging.getInstance().token.addOnCompleteListener {
if (!it.isSuccessful) {
Log.i("minfos", "获取token失败" + it.exception)
return@addOnCompleteListener
}
//国内需要连接VPN方能获取成功
val token = it.result
Toast.makeText(applicationContext, "获取token" + token, Toast.LENGTH_LONG).show()
Log.i("minfos", "获取到token:" + token)
}
}
3.身份验证:Authentication
方便的实现google登录,facebook登录,twitter登录,github登录,邮箱登录,电话登录以及自定义验证登录
private fun signInClient() {
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(Scope(""))
.requestIdToken("")
.requestProfile()
.requestServerAuthCode("", true)
.requestEmail()
.build();
// Build a GoogleSignInClient with the options specified by gso.
mGoogleSignInClient = GoogleSignIn.getClient(ctx, gso)
}
4.实时数据库:Database和最新的Firestore
无需搭建服务器就能拥有一个实时的数据库,可以用来保存自己想要保存的任何数据。
5.云仓库:Cloud Storage
无需搭建服务器就能拥有一个云仓库,可以用来保存文件,如图片、音频、视频。不过免费版最多保存1个G的文件。
6.app崩溃报告:Firebase Crashlytics
自动记录应用内崩溃信息,只需简单的几步,就可以将Firebase Crashlytics添加到安卓工程中,然后Firebase Crashlytics就会自动的收集应用内崩溃信息,包括错误类型,代码定位等等,非常的方便实用
7.Firebase远程配置:Remote Config
相当于在服务器上设置几个key-value字段,我们在应用内可以请求这几个字段,通过value值设置我们的app。
是的,这两种方法一样可以实现远程配置。只是用Firebase远程配置实现的话,对app的性能影响最低,实现起来也更优雅。
8.A/B测试
通过Firebase远程配置的A/B测试,帮助了解哪种配置用户更喜欢。
9.动态链接:Dynamic Link
生成一个根据不同的场景响应不同行为的链接。
10.邀请:Firebase invites
邀请好友,基于Firebase动态链接。使用邀请功能让用户邀请好友下载或打开app更加的方便。
11.AdWords
帮助投放app,就是给钱让谷歌给你打广告。
可继续接入的功能
1.第三方登录
2.实时概览
3.日志搜集
4.用户分析
5.事件打点
6.消息推送
首次发送消息,需要验证FCM注册令牌,使用该方法可获取令牌值:
if (!task.isSuccessful) {
Log.i("minfo", "Fetching FCM registration token failed", task.exception)
return@OnCompleteListener
}
// Get new FCM registration token
val token = task.result
Log.i("minfo", token)
})
消息推送成功: