import 'dart:async'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:fcs/vo/document_log.dart'; import 'package:fcs/vo/log.dart'; import 'base_model.dart'; import 'constants.dart'; class LogModel extends BaseModel { List logs = []; List docLogs = []; void initUser(user) { super.initUser(user); _loadLogs(); } @override logout() async { logs = []; docLogs=[]; } Future _loadLogs() async { Stream snapshots = Firestore.instance .collection( "/$biz_collection/${setting.okEnergyId}/$user_collection/${user.docID}/$log_collection") .orderBy("active_time", descending: true) .limit(30) .snapshots(); snapshots.listen((snaps) async { logs = snaps.documents .map((documentSnapshot) => Log.fromMap(documentSnapshot.data, documentSnapshot.documentID)) .toList(); notifyListeners(); }); } Future loadDocLogs(String docID) async { Stream snapshots = Firestore.instance .collection("/$biz_collection/${setting.okEnergyId}/$log_collection") .where('doc_id', isEqualTo: docID) .orderBy('date', descending: true) .limit(30) .snapshots(); snapshots.listen((snaps) async { docLogs.clear(); docLogs = snaps.documents .map((documentSnapshot) => DocLog.fromMap( documentSnapshot.data, documentSnapshot.documentID)) .toList(); notifyListeners(); }); } }