I have added Firebase analytics to a Flutter app, but when I try it with the debug view in Firebase, only some of the events are logged. And when a screen_view event is logged, I don't get all the information (Like firebase_screen). Even when I try to log an event with analytics.logEvent(name: 'test') it usually doesn't work.
Initially I thought the problem was that I'm using onGenerateRoute, but I have tried to use routes as well without luck.
Here is my main.dart:
import 'package:brf/route_generator.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_analytics/observer.dart';
import 'package:flutter/material.dart';
void main() => runApp(App());
class App extends StatelessWidget {
static FirebaseAnalytics analytics = FirebaseAnalytics();
static FirebaseAnalyticsObserver observer = FirebaseAnalyticsObserver(analytics: analytics);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Title',
initialRoute: '/',
onGenerateRoute: RouteGenerator.generateRoute,
navigatorObservers: [observer],
);
}
}
And Here is RouteGenerator:
import 'package:flutter/material.dart';
import 'package:brf/screens/home.dart';
class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) {
//Argument som skickas till ny sida
//final args = settings.arguments;
switch (settings.name) {
case '/':
return MaterialPageRoute(builder: (_) => Home());
break;
case '/second':
return MaterialPageRoute(builder: (_) => Second());
default:
return MaterialPageRoute(builder: (_) => _ErrorRoute());
}
}
}
And finally the screens:
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: StreamBuilder(
stream: Firestore.instance.collection('test').snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData)
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(onPressed: () {
Navigator.of(context).pushNamed('/second');
}),
Text(snapshot.data.documents[0]['test']),
],
);
else
return CircularProgressIndicator();
},
),
),
);
}
}
class Second extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
);
}
}