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

Ósc*_*car 25 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);

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

小智 20

不需要.您只需要在扩展Application类的Class中创建全局变量



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

Run Code Online (Sandbox Code Playgroud)

之后,在清单中的Application标记中添加以下行

<application
  android:name=".MyApplication"
  ...
Run Code Online (Sandbox Code Playgroud)

  • 那么为什么Steve Ganem说它不受支持? (2认同)
  • @HSH并不是说支持Page/ScreenViews.如果需要在每项活动中初始化,他只回答了这个问题.答案是否定的,你可以在Application类中实例化它. (2认同)

Emr*_*kin 12

现在只需一行即可完成屏幕跟踪

**Your ApplicationClass**
    public FirebaseAnalytics mFirebaseAnalytics;
    @Override
        public void onCreate() {
     mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    }

    public FirebaseAnalytics getmFirebaseAnalytics() {
            return mFirebaseAnalytics;
        }
Run Code Online (Sandbox Code Playgroud)

之后创建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();
        }
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*ark 8

对于屏幕的报告,你也不需要调用FirebaseAnalytics.setCurrentScreen(),因为这是自动完成的每一个活动.在官方的文档状态:

请注意,屏幕报告会自动启用,并为您记录当前活动的类名称,而无需您调用此功能.

据推测,为此,您需要调用FirebaseAnalytics.getInstance()Application子类onCreate()方法.