Как сохранить документ Firestore локально?

Как сказал EJP, это сообщение показано из-за вызова протокола non-https. Если вы уверены, что это HTTPS, проверьте настройки прокси-сервера обхода и в случае, если ваш URL-адрес хоста webservice в списке прокси-сервера обхода

0
задан dakamojo 13 July 2018 в 04:21
поделиться

1 ответ

Вот что я в итоге сделал. Это было довольно прямолинейно. Я реализовал это как статический класс и не уверен, что это лучший подход. Но мне все нравится.

Я создал класс, который устанавливает слушателя для документа, а также предоставляет поток для того, когда он обновляется. В качестве частичной работы мой класс также анализирует документ на карте и сортирует игры.

import 'package:cloud_firestore/cloud_firestore.dart';
import 'dart:async';
import 'package:pari/game.dart';

class Schedule {
  static Map<String, Game> games = Map<String, Game>();

  static StreamController<Map<String, Game>> _onUpdateController = StreamController.broadcast();
  static Stream get onUpdate => _onUpdateController.stream;

  static void setupListener() {
    print('setupListener');

    DocumentReference reference = Firestore.instance.collection('schedule').document('2018');
    reference.snapshots().listen((documentSnapshot) {
      print('listen begin');

      List<Game> sortedList = List<Game>();
      documentSnapshot.data.values.forEach((value) {
        Game game = Game.fromMap(value);
        sortedList.add(game);
      });
      sortedList.sort((a,b) => a.startTime.compareTo(b.startTime));

      games.clear();
      sortedList.forEach((game) {
        games.addAll({game.key: game});
      });

      _onUpdateController.add(games);

      print('listen end');
      print('games: ${games.length}');
    });
  }
}
0
ответ дан dakamojo 17 August 2018 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: