Я добавил аналитику Firebase в приложение Flutter, но когда я пробую это с представлением отладки в Firebase, регистрируются только некоторые из событий. И когда регистрируется событие screen_view, я не получаю всю информацию (например, firebase_screen). Даже когда я пытаюсь зарегистрировать событие с analytics.logEvent (name: 'test'), оно обычно не работает.
Сначала я думал, что проблема в том, что я использую onGenerateRoute
, но у меня есть попытался использовать routes
также без удачи.
Вот мой 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],
);
}
}
И вот 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());
}
}
}
И, наконец, экраны:
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(),
);
}
}