是否有必要在每个活动中初始化Firebase Analytics?

时间:2016-07-22 10:08:40

标签: android android-activity firebase firebase-analytics

我不想将任何特殊日志发送到Firebase Analytics控制台,只需检查哪些屏幕是用户花费更多时间等等。

当我使用AnalyticsTracker时,必须在任何地方添加它,因此您可以使用Tracker.xml文件设置每个屏幕的具体名称。

官方文件说:

  

将Firebase Analytics的依赖项添加到您的应用级build.gradle文件中:

     

compile 'com.google.firebase:firebase-core:9.2.1'

     

在活动顶部声明FirebaseAnalytics对象:

     

private FirebaseAnalytics mFirebaseAnalytics;

     

然后在onCreate()方法中初始化它:

     

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

所以我想我在每个想要获取数据的页面都这样做,不是吗?

5 个答案:

答案 0 :(得分:19)

没有。您只需要在扩展Application类

的Class中创建全局变量


    public class MyApplication extends Application {
    public static  FirebaseAnalytics mFirebaseAnalytics;
    @Override
        public void onCreate() {
            super.onCreate();
          mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    }
    }

之后,在清单中的Application标记

中添加以下行
<application
  android:name=".MyApplication"
  ...

答案 1 :(得分:12)

现在只需一行

即可完成屏幕跟踪
**Your ApplicationClass**
    public FirebaseAnalytics mFirebaseAnalytics;
    @Override
        public void onCreate() {
     mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    }

    public FirebaseAnalytics getmFirebaseAnalytics() {
            return mFirebaseAnalytics;
        }

之后创建Base Activity并从此处调用FirebaseAnalytics getter。然后使用.setCurrentScreen,如下所示

**Your BaseActivity**
    @Override
        protected void onResume() {

            FirebaseAnalytics firebaseAnalytics = ((ApplicationClass) getApplication()).getmFirebaseAnalytics();
            firebaseAnalytics.setCurrentScreen(this, getClass().getSimpleName(), null);
            Log.d("FAnalytics", "setCurrentScreen: " + getClass().getSimpleName());
            super.onResume();
        }

别忘了!您的所有活动必须从BaseActivity扩展 https://firebase.google.com/docs/analytics/screenviews

答案 2 :(得分:8)

对于屏幕报告,需要在每个Activity中调用List<String> items= DataManager.getSharedInstance().getSearchResultItems(); ,因为这是自动完成的。 official docs州:

  

请注意,屏幕报告会自动启用并记录   您需要的当前活动的类名称   叫这个功能。

据推测,要使其工作,您需要在Application子类FirebaseAnalytics.setCurrentScreen()方法中调用FirebaseAnalytics.getInstance()

答案 3 :(得分:4)

Firebase Analytics尚不支持自动屏幕跟踪,但我们现在正在仔细考虑这一点。

答案 4 :(得分:0)

Firebase现在自动跟踪屏幕活动,但您仍可以手动跟踪它们。

var value = typeof(B).GetProperty("Type").GetValue(typeof(B));

源:

https://firebase.google.com/docs/analytics/screenviews