Android firebase集成
官方文檔地址:https://firebase.google.com/docs/android/setup?authuser=0
是什么
Firebase 是一個來自 Google 的移動應(yīng)用程序開發(fā)平臺,具有強大的開發(fā)、處理和增強應(yīng)用程序的功能般婆。本質(zhì)上是一個開發(fā)人員可以依賴的工具集合澜术,可以根據(jù)需求創(chuàng)建應(yīng)用程序并對其進行擴展罐旗。
目前提供如下三類服務(wù)(具體服務(wù)參加創(chuàng)建firebase項目后項目主頁的左側(cè)的菜單):
- 發(fā)布&監(jiān)控(崩潰記錄、性能測試容燕、Test Lab)
- 分析(Dashboard琅拌、Realtime缨伊、Events)
- 吸引(Predictions、A/B Testing进宝、AdMob)
用什么
目前app基本使用Analytics和Crashlytics和performance三個服務(wù)刻坊,覆蓋用戶行為、崩潰分析即彪、性能分析三類紧唱,其他服務(wù)后續(xù)用到則逐步完善文檔活尊。
集成
firebase控制臺創(chuàng)建項目隶校,項目下創(chuàng)建應(yīng)用,注意包名蛹锰。創(chuàng)建成功后可獲得google-services.json文件深胳,將其放在主app模塊的根目錄下
項目根目錄build.gradle下添加:
// Google Services plugin
classpath 'com.google.gms:google-services:4.3.8'
//firebase crashlytics
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2'
// firebase Performance Monitoring plugin
classpath 'com.google.firebase:perf-plugin:1.4.0'
app模塊build.gradle中的plugins下添加:
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
id 'com.google.firebase.firebase-perf'
dependencies下添加
api platform('com.google.firebase:firebase-bom:28.3.0')
api 'com.google.firebase:firebase-analytics-ktx'
api 'com.google.firebase:firebase-crashlytics-ktx'
api 'com.google.firebase:firebase-crashlytics-ndk'
api 'com.google.firebase:firebase-perf'
Analytics使用
設(shè)置用戶屬性
需要事先添加相關(guān)的屬性名稱,然后統(tǒng)計铜犬,參考這里
Firebase.analytics.setUserProperty(propertyName, propertyValue)
常規(guī)事件統(tǒng)計
Firebase.analytics.logEvent(name) {
param("image_name", name)
param("full_text", text)
}
跟蹤屏幕事件
Firebase.analytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
param(FirebaseAnalytics.Param.SCREEN_NAME, screenName)
param(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity")
}
bundle方式傳參
val params = Bundle()
params.putString("uid", uid)
params.putDouble(FirebaseAnalytics.Param.VALUE, amount)
params.putString(FirebaseAnalytics.Param.CURRENCY, "USD")
params.putString("order_id", orderid)
Firebase.analytics.logEvent("purchase", params)
java(非ktx)調(diào)用
val params = Bundle()
params.putString("uid", uid)
params.putDouble(FirebaseAnalytics.Param.VALUE, amount)
params.putString(FirebaseAnalytics.Param.CURRENCY, "USD")
params.putString("order_id", orderid)
FirebaseAnalytics.getInstance(context).logEvent("purchase", params)
crashlytics使用
設(shè)置用戶id
可在bug中關(guān)聯(lián)看到用戶id
Firebase.crashlytics.setUserId(userId)
設(shè)置崩潰日志上送開關(guān)
- 先在Mainfest中設(shè)置如下:
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="false" />
- 再在代碼中針對release環(huán)境放開日志上送舞终,避免受調(diào)試數(shù)據(jù)污染
Firebase.crashlytics.setCrashlyticsCollectionEnabled(enabled)
performance使用
暫不需要特別設(shè)置轻庆,可自動收集。
注意點
部分google文檔點擊可能失效或無鏈接(google本身問題)
-
打release包時提示"uploadCrashlyticsMappingFileRelease FAILED"敛劝,是因為release包firebase會自動上傳Mapping文件余爆。解決方案有兩種
方法一、科學(xué)上網(wǎng)夸盟,然后在gradle.properties文件中添加
systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyPort=7890
方法二蛾方、release包設(shè)置不自動上傳Mapping文件,后續(xù)手動上傳
buildTypes { release { ... // firebase crashlytics設(shè)置是否要自動上傳Mapping文件 firebaseCrashlytics { mappingFileUploadEnabled false } } }