Firebase Analytics 事件 - currentScreen 始终为 screen_view

Firebase Analytics Events - currentScreen is always screen_view

在我的 flutter 应用程序中实施 firebase 分析的过程中,我无法触发适当的事件,或者我不明白它应该如何工作。让我们采用以下代码:

firebaseAnalytics.setCurrentScreen(screenName: "Dashboard");

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

当我通过以下方式自动触发屏幕更改时也是如此:

navigatorObservers: [
        FirebaseAnalyticsObserver(analytics: appState.firebaseAnalytics),
      ],

所以我的问题是:为什么 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,
    });
  }

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

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

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

为什么使用 navigatorObservers 在 DebugView 中不显示路由名称?为了寻找这个问题的解释,我来到这里并在马克的回答中找到了答案。它实际上正在被收集并作为一个名为 firebase_screen.

的参数定位