Как сказал EJP, это сообщение показано из-за вызова протокола non-https. Если вы уверены, что это HTTPS, проверьте настройки прокси-сервера обхода и в случае, если ваш URL-адрес хоста webservice в списке прокси-сервера обхода
Вот что я в итоге сделал. Это было довольно прямолинейно. Я реализовал это как статический класс и не уверен, что это лучший подход. Но мне все нравится.
Я создал класс, который устанавливает слушателя для документа, а также предоставляет поток для того, когда он обновляется. В качестве частичной работы мой класс также анализирует документ на карте и сортирует игры.
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}');
});
}
}