В настоящее время я инициализирую 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);
Почему это?Что здесь происходит, что останавливает регистрацию параметров в первом блоке кода, но не во втором?