Android firebase集成

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è)的菜單):

  1. 發(fā)布&監(jiān)控(崩潰記錄、性能測試容燕、Test Lab)
  2. 分析(Dashboard琅拌、Realtime缨伊、Events)
  3. 吸引(Predictions、A/B Testing进宝、AdMob)

用什么

目前app基本使用AnalyticsCrashlyticsperformance三個服務(wù)刻坊,覆蓋用戶行為、崩潰分析即彪、性能分析三類紧唱,其他服務(wù)后續(xù)用到則逐步完善文檔活尊。

集成

firebase控制臺創(chuàng)建項目隶校,項目下創(chuàng)建應(yīng)用,注意包名蛹锰。創(chuàng)建成功后可獲得google-services.json文件深胳,將其放在主app模塊的根目錄下

image-20210902135042943.png

項目根目錄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)
  1. 先在Mainfest中設(shè)置如下:
<meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="false" />
  1. 再在代碼中針對release環(huán)境放開日志上送舞终,避免受調(diào)試數(shù)據(jù)污染
Firebase.crashlytics.setCrashlyticsCollectionEnabled(enabled)

performance使用

暫不需要特別設(shè)置轻庆,可自動收集。

注意點

  1. 部分google文檔點擊可能失效或無鏈接(google本身問題)

  2. 打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
                }
     }
    }
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上陕,一起剝皮案震驚了整個濱河市桩砰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌释簿,老刑警劉巖亚隅,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異庶溶,居然都是意外死亡煮纵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門偏螺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醉途,“玉大人,你說我怎么就攤上這事砖茸“妫” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵凉夯,是天一觀的道長货葬。 經(jīng)常有香客問我,道長劲够,這世上最難降的妖魔是什么震桶? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮征绎,結(jié)果婚禮上蹲姐,老公的妹妹穿的比我還像新娘。我一直安慰自己人柿,他們只是感情好柴墩,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凫岖,像睡著了一般江咳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哥放,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天歼指,我揣著相機與錄音爹土,去河邊找鬼。 笑死踩身,一個胖子當(dāng)著我的面吹牛胀茵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挟阻,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼宰掉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赁濒?” 一聲冷哼從身側(cè)響起轨奄,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拒炎,沒想到半個月后挪拟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡击你,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年玉组,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丁侄。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡惯雳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸿摇,到底是詐尸還是另有隱情石景,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布拙吉,位于F島的核電站潮孽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏筷黔。R本人自食惡果不足惜往史,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佛舱。 院中可真熱鬧椎例,春花似錦、人聲如沸请祖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽损拢。三九已至陌粹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間福压,已是汗流浹背掏秩。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荆姆,地道東北人蒙幻。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像胆筒,于是被迫代替她去往敵國和親邮破。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容