Параметры события Firebase не регистрируются с помощью метода # 1, но работают с методом # 2. Почему?

#android #firebase #firebase-analytics

#Android #firebase #firebase-аналитика

Вопрос:

В настоящее время я инициализирую Firebase Analytics в своем классе приложения следующим образом:

 public class App extends MultiDexApplication {

    public static FirebaseAnalytics mFirebaseAnalytics;

    @Override
    public void onCreate() {
        super.onCreate();

        // Obtain the FirebaseAnalytics instance.
        mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    }

    public static FirebaseAnalytics getFirebaseAnalytics() {
        return mFirebaseAnalytics;
    }

}
  

У меня есть класс обработчика FirebaseHandler , который обрабатывает все протоколирование:

 public class FirebaseHandler {

    /**
     * Log an event to Firebase, without a bundle.
     */
    public static void logEvent(String event) {
        App.getFirebaseAnalytics().logEvent(event, null);
    }

    /**
     * Log an event to Firebase, with a bundle
     */
    public static void logEvent(String event, Bundle bundle) {

        // I've removed some other code which makes checks on the bundle here

        App.getFirebaseAnalytics().logEvent(event, bundle);
    }

}
  

Затем, когда я хочу зарегистрировать событие внутри действия, я делаю следующее:

 Bundle bundle = new Bundle();

bundle.putString(FirebaseAnalytics.Param.SOURCE, "TestSource");
bundle.putString(FirebaseAnalytics.Param.MEDIUM, "TestMedium");
bundle.putString(FirebaseAnalytics.Param.CAMPAIGN, "TestCampaign");

FirebaseHandler.logEvent(FirebaseAnalytics.Event.CAMPAIGN_DETAILS, bundle);
FirebaseHandler.logEvent(FirebaseAnalytics.Event.APP_OPEN, bundle);
  

Однако я заметил, что на самом деле это не регистрирует параметры события в Google Analytics, но когда я меняю последние две строки на следующие, это работает:

 App.getFirebaseAnalytics().logEvent(FirebaseAnalytics.Event.CAMPAIGN_DETAILS, bundle);
App.getFirebaseAnalytics().logEvent(FirebaseAnalytics.Event.APP_OPEN, bundle);
  

Почему это? Что здесь происходит, из-за чего параметры не регистрируются в первом блоке кода, но не во втором?