我希望通过Firebase分析在Flutter应用中跟踪选项卡更改。在示例应用程序中,它们只是将FirebaseAnalyticsObserver传递到小部件树下:
class MyApp extends StatelessWidget {
static FirebaseAnalytics analytics = FirebaseAnalytics();
static FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: analytics);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Firebase Analytics Demo',theme: ThemeData(
primarySwatch: Colors.blue,),navigatorObservers: <NavigatorObserver>[observer],home: MyHomePage(
title: 'Firebase Analytics Demo',analytics: analytics,observer: observer,);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key,this.title,this.analytics,this.observer})
: super(key: key);
final String title;
final FirebaseAnalytics analytics;
final FirebaseAnalyticsObserver observer;
@override
_MyHomePageState createState() => _MyHomePageState(analytics,observer);
}
class _MyHomePageState extends State<MyHomePage> {
_MyHomePageState(this.analytics,this.observer);
final FirebaseAnalyticsObserver observer;
final FirebaseAnalytics analytics;
但是问题是我的标签页位于小部件树的下方。因此很难一路走下去。
如何初始化FirebaseAnalytics观察器以跟踪正常的屏幕路线,但也可以将其提供给标签页?
我正在使用Provider和ChangeNotifier。所以也许我可以初始化一个服务,然后提供下来?例如
class Analytic extends ChangeNotifier {
static FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: analytics);
}