美文网首页
Android firebase集成

Android firebase集成

作者: Henryzhu | 来源:发表于2021-08-03 18:13 被阅读0次

    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
                  }
       }
      }
      

    相关文章

      网友评论

          本文标题:Android firebase集成

          本文链接:https://www.haomeiwen.com/subject/rpvevltx.html