FirebaseAnalyticsObserver class Null safety

A NavigatorObserver that sends events to Firebase Analytics when the currently active ModalRoute changes.

When a route is pushed or popped, and if routeFilter is true, nameExtractor is used to extract a name from RouteSettings of the now active route and that name is sent to Firebase.

The following operations will result in sending a screen view event:

Navigator.pushNamed(context, '/contact/123');

Navigator.push<void>(context, MaterialPageRoute(
  settings: RouteSettings(name: '/contact/123'),
  builder: (_) => ContactDetail(123)));

Navigator.pushReplacement<void>(context, MaterialPageRoute(
  settings: RouteSettings(name: '/contact/123'),
  builder: (_) => ContactDetail(123)));

Navigator.pop(context);

To use it, add it to the navigatorObservers of your Navigator, e.g. if you're using a MaterialApp:

MaterialApp(
  home: MyAppHome(),
  navigatorObservers: [
    FirebaseAnalyticsObserver(analytics: service.analytics),
  ],
);

You can also track screen views within your ModalRoute by implementing RouteAware<ModalRoute<dynamic>> and subscribing it to FirebaseAnalyticsObserver. See the RouteObserver<ModalRoute<dynamic>> docs for an example.

Inheritance

Constructors

FirebaseAnalyticsObserver({required FirebaseAnalytics analytics, ScreenNameExtractor nameExtractor = defaultNameExtractor, RouteFilter routeFilter = defaultRouteFilter, dynamic onError(PlatformException error)?})
Creates a NavigatorObserver that sends events to FirebaseAnalytics.

Properties

analytics FirebaseAnalytics
final
hashCode int
The hash code for this object.
read-onlyinherited
nameExtractor ScreenNameExtractor
final
The navigator that the observer is observing, if any.
read-onlyinherited
routeFilter RouteFilter
final
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited

Methods

debugObservingRoute(ModalRoute route) bool
Whether this observer is managing changes for the specified route.
inherited
didPop(Route route, Route? previousRoute) → void
The Navigator popped route.
override
didPush(Route route, Route? previousRoute) → void
The Navigator pushed route.
override
didRemove(Route route, Route? previousRoute) → void
The Navigator removed route.
inherited
didReplace({Route? newRoute, Route? oldRoute}) → void
The Navigator replaced oldRoute with newRoute.
override
didStartUserGesture(Route route, Route? previousRoute) → void
The Navigator's routes are being moved by a user gesture.
inherited
didStopUserGesture() → void
User gesture is no longer controlling the Navigator.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
subscribe(RouteAware routeAware, ModalRoute route) → void
Subscribe routeAware to be informed about changes to route.
inherited
toString() String
A string representation of this object.
inherited
unsubscribe(RouteAware routeAware) → void
Unsubscribe routeAware.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited