持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
接入 firebase 需要科学上网,接入的 app 也需要科学上网
什么是 Firebase ?
Firebase is an app development platform that helps you build and grow apps and games users love. Backed by Google and trusted by millions of businesses around the world. 译:Firebase是一个应用程序开发平台,可帮助您构建和发展应用程序和游戏用户喜欢的游戏。由Google的支持,并受到世界各地数百万企业的信任。
它是一个帮助开发者让应用变得更好的平台。其中 Google Analytics 和 Crashlytics 如同国内 友盟,Bugly 功能一样,其中更有 Events 事件体系如同神策埋点等。
它是免费的,只有部分功能收费,但对于刚起步的团队和个人来说,Firebase 平台不乏是最合适的选择。
一、需要一个 Google 账号
自行科学上网注册
二、创建项目
进入 Firebase 控制台 选择创建项目
1、输入项目名称
这里我填写的 Test, 下方 test-905e5 可以点击编辑一个通用格式的二项目名称代码
选中接收条款和我确认用途,然后点击继续
2、点击继续即可
Google Analytics 可以帮助我们分析用户,崩溃,事件等等
3、选择分析位置
国家是看业务需求,选择哪个国家 firebase 就会匹配最近的服务器,增加响应小绿
4、点击创建项目
等待项目创建完成即可
5、项目创建完成,添加应用
三、添加应用
点击 iOS 安卓机器人 和 Web 图标来添加应用,下面以 安卓 为例
1、填写应用信息
1、填写包名 2、填写应用别名和 SHA-1 可选项 3、点击转圈(下一步)
2、下载 google-services.json 文件 必须下载!必须下载!必须下载!
点击下一步
3、 添加 Firebase SDK
如图添加代码到 project 下 gradle 文件内。 下载的 google-services.json 文件放在 app 目录下,与 build.gradle 同级。firebase 插件会检测这个 json 文件
4、添加依赖到 app 下的 build.gradle
5、点击前往控制台
四、控制台
左上角红框 可以切换项目 中间红框可以在此项目添加多个应用 下方红框必须等待 App 接入 Firebase SDK 成功后打开app,并且科学上网,firebase 会上报到控制台
五、接入后运行app可以会出现编译不过,需要排除文件如下,缺啥填啥
app 下 build.gradle android 标签下
packagingOptions {
exclude 'project.properties'
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
六、接入 firebase 的 Crashlytics
Firebase Crashlytics 是一个轻量级的实时崩溃报告解决方案,可帮助您对影响应用质量的稳定性问题进行跟踪、确定优先解决顺序并加以修复。 Crashlytics 会对崩溃进行智能分组并突出显示导致这些崩溃的环境因素,从而为您节省问题排查的时间。
添加依赖到 app 下的 build.gradle
implementation 'com.google.firebase:firebase-crashlytics-ktx'
添加插件到 project 下的 build.gradle
// Add the Crashlytics Gradle plugin
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
添加plugin到 app 下的 build.gradle
// Apply the Crashlytics Gradle plugin
apply plugin: 'com.google.firebase.crashlytics'
这就完事儿啦。
为 Crashlytics 设置用户标识
Firebase.crashlytics.setUserId("user123456789")
当用户清除时可以设置为空。
在 Crashlytics 信息中心内获取便于用户理解的崩溃报告
添加混淆规则
-keepattributes SourceFile,LineNumberTable # Keep file names and line numbers.
-keep public class * extends java.lang.Exception # Optional: Keep custom exceptions.
添加 mapping 上传规则到 app 下 build.gradle 的 android 标签下 如果想要测试环境或正式环境不上传 可自行注释下方两个 if 条件
// 屏蔽 task (uploadCrashlyticsMappingFileRelease)
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("uploadCrashlyticsMappingFileRelease")) {
task.enabled = false
}
if (task.name.contains("uploadCrashlyticsMappingFileDebug")) {
task.enabled = false
}
}
}
如果有测试环境和正式环境需要不同 firebase 的话可按下图配置 src 下分别创建 debug 和 release 文件夹,将对应环境的 json 文件放置其中即可
其他的配置可查阅文档:Firebase Crashlytics 文档