如何在Firebase Analytics Flutter上跟踪屏幕

aiazj4mn  于 2023-05-29  发布在  Flutter
关注(0)|答案(2)|浏览(182)

我正在尝试将firebase分析跟踪屏幕添加到我的应用程序。我试着像下面的图片一样在菜单中输入它,但它总是读不出来

我试过一些代码,但它不工作。现在,我使用的代码如下:

FirebaseAnalyticsObserver(analytics: analytics);

 onGenerateRoute: widget.appRouter.onGenerateRoute,
          builder: EasyLoading.init(),
          initialRoute: splashScreenRoute,
          navigatorObservers: <NavigatorObserver>[
            // FirebaseAnalyticsObserver(analytics: _analytics),
            observer
          ]

在每个屏幕上,我在每个initState()上添加如下代码

analytics.setCurrentScreen(screenName: 'Page Detail Mobil');

我已经重新运行应用程序,但它不工作跟踪屏幕,并把在Firebase分析.请帮帮我谢谢

wdebmtf2

wdebmtf21#

我使用了不同的功能来跟踪我的屏幕。我已经在路由上调用了我的logScreens函数,或者你可以在每个页面的initState上调用它。
这是我的analytic_service.dart

class AnalyticsService {
 final FirebaseAnalytics _analytics = FirebaseAnalytics();

  Future logScreens({@required String? name}) async {
  await _analytics.setCurrentScreen(screenName: name);
 }
}

这是定位器, dart

import 'package:get_it/get_it.dart';

import 'analytic_service.dart';

GetIt locator = GetIt.instance;

void setupLocator() {
  if (!locator.isRegistered<AnalyticsService>()) {
    locator.registerLazySingleton(() => AnalyticsService());
  }
}

需要时调用logScreens函数。

locator<AnalyticsService>().logScreens(name: "Dashboard");

这将被记录在这样的分析中。

在DebugView上试试这个。单击screen_view。它将显示这样的屏幕。

23c0lvtd

23c0lvtd2#

对我来说,问题是别的。对我来说,FirebaseAnalyticsObserver的问题是,defaultRouteFilter只检查生成的项目是否是PageRoute。由于我返回了其他东西,X1 M3 N1 X失败了,它从未正确跟踪屏幕名称。所以我需要改变的就是:

navigatorObservers: [
    FirebaseAnalyticsObserver(
        analytics: analytics,
        routeFilter: (_) => true,  // Or put your own custom check here
    ),
]

此外,屏幕跟踪事件几乎立即显示在Firebase实时 Jmeter 板上。
希望这对某人有帮助!

相关问题