Аналитика Firebase работает только время от времени - PullRequest
1 голос
/ 06 марта 2020

Я добавил аналитику 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(),
    );
  }
}
...