FirebaseAnalyticsObserver class

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

When a route is pushed or poped, nameExtractor is used to extract a name from RouteSettings of the now active route and that name is send to Firebase.

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

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

Navigator.push(context, new MaterialPageRoute(
  settings: new RouteSettings(name: '/contact/123',
  builder: new 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: new MyAppHome(),
  navigatorObservers: [
    new 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 })

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
didRemove(Route route, Route previousRoute) → void
The Navigator removed route. [...]
inherited
didReplace({Route newRoute, Route oldRoute }) → void
The Navigator replaced oldRoute with newRoute.
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