FirebaseAnalyticsObserver class

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

When a route is pushed or popped, 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 PageRoute by implementing PageRouteAware and subscribing it to FirebaseAnalyticsObserver. See the PageRouteObserver docs for an example.

Inheritance

Constructors

FirebaseAnalyticsObserver({@required FirebaseAnalytics analytics, ScreenNameExtractor nameExtractor: defaultNameExtractor, dynamic onError(PlatformException error) })
Creates a NavigatorObserver that sends events to FirebaseAnalytics. [...]

Properties

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

Methods

didPop(Route route Route previousRoute) → void
The Navigator popped route. [...]
override
didPush(Route route Route previousRoute) → void
The Navigator pushed route. [...]
override
didReplace({Route newRoute Route oldRoute }) → void
The Navigator replaced oldRoute with newRoute.
override
didRemove(Route route Route previousRoute) → void
The Navigator removed route. [...]
inherited
didStartUserGesture(Route route Route previousRoute) → void
The Navigator's route route is 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, PageRoute route) → void
Subscribe routeAware to be informed about changes to route. [...]
inherited
toString() → String
Returns a string representation of this object.
inherited
unsubscribe(RouteAware routeAware) → void
Unsubscribe routeAware. [...]
inherited

Operators

operator ==(dynamic other) → bool
The equality operator.
inherited