Android firebase集成

2021-08-03  本文已影响0人  Henryzhu

Android firebase集成

官方文档地址:https://firebase.google.com/docs/android/setup?authuser=0

是什么

Firebase 是一个来自 Google 的移动应用程序开发平台,具有强大的开发、处理和增强应用程序的功能。本质上是一个开发人员可以依赖的工具集合,可以根据需求创建应用程序并对其进行扩展。

目前提供如下三类服务(具体服务参加创建firebase项目后项目主页的左侧的菜单):

  1. 发布&监控(崩溃记录、性能测试、Test Lab)
  2. 分析(Dashboard、Realtime、Events)
  3. 吸引(Predictions、A/B Testing、AdMob)

用什么

目前app基本使用AnalyticsCrashlyticsperformance三个服务,覆盖用户行为、崩溃分析、性能分析三类,其他服务后续用到则逐步完善文档。

集成

firebase控制台创建项目,项目下创建应用,注意包名。创建成功后可获得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使用

设置用户属性

需要事先添加相关的属性名称,然后统计,参考这里

Firebase.analytics.setUserProperty(propertyName, propertyValue)
常规事件统计
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)调用
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使用

设置用户id

可在bug中关联看到用户id

Firebase.crashlytics.setUserId(userId)
设置崩溃日志上送开关
  1. 先在Mainfest中设置如下:
<meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="false" />
  1. 再在代码中针对release环境放开日志上送,避免受调试数据污染
Firebase.crashlytics.setCrashlyticsCollectionEnabled(enabled)

performance使用

暂不需要特别设置,可自动收集。

注意点

  1. 部分google文档点击可能失效或无链接(google本身问题)

  2. 打release包时提示"uploadCrashlyticsMappingFileRelease FAILED",是因为release包firebase会自动上传Mapping文件。解决方案有两种

    方法一、科学上网,然后在gradle.properties文件中添加

    systemProp.https.proxyHost=127.0.0.1
    systemProp.https.proxyPort=7890
    

    方法二、release包设置不自动上传Mapping文件,后续手动上传

    buildTypes {
     release {
         ...
         // firebase crashlytics设置是否要自动上传Mapping文件
                firebaseCrashlytics {
                    mappingFileUploadEnabled false
                }
     }
    }
    
上一篇下一篇

猜你喜欢

热点阅读