Firebase 分析事件 - currentScreen 始终是 screen_view

Mar*_*arc 4 google-analytics firebase google-analytics-firebase flutter firebase-analytics

在我将 firebase 分析实施到我的 flutter 应用程序中的过程中,我无法触发正确的事件,或者我不知道这应该如何工作。让我们使用以下代码:

firebaseAnalytics.setCurrentScreen(screenName: "Dashboard");
Run Code Online (Sandbox Code Playgroud)

当我触发此事件时,在 Firebase Analytics 调试视图中我看到:

Firebase 分析调试视图

当我通过以下方式自动触发屏幕更改时相同:

navigatorObservers: [
        FirebaseAnalyticsObserver(analytics: appState.firebaseAnalytics),
      ],
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:为什么 Analytics 会打印“screen_view”而不是“Dashboard”或我在命名路由中的任何其他名称?

屏幕名称实际上已提交给 API 的内部工作,因为我在该位置调试了firebase_analytics.dart

Future<void> setCurrentScreen(
      {@required String screenName,
      String screenClassOverride = 'Flutter'}) async {
    if (screenName == null) {
      throw ArgumentError.notNull('screenName');
    }

    await _channel.invokeMethod<void>('setCurrentScreen', <String, String>{
      'screenName': screenName,
      'screenClassOverride': screenClassOverride,
    });
  }
Run Code Online (Sandbox Code Playgroud)

Mar*_*arc 7

回答我自己的问题并因此浪费赏金很难,但就是这样。以下是我的发现:

用户在 API 中提供的 screenName 被提交到 Firebase Analytics 仪表板,但您需要深入了解事件“screen_view”以查看您提供的实际点击屏幕名称。不幸的是,用户提供的 Name 不会显示在 Firebase Analytics 控制台的 debugView 中,这首先让我走错了路,认为它完全丢失了,这是错误的。

tl;dr : screenName 只是 screen_view 事件的一个参数,它就在 screen_view 事件中,你可以深入研究它。