Firebase analytics only works sporadically

Viewed 212

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(),
    );
  }
}
0 Answers
Related