Files
fcs/lib/model/log_model.dart
2020-05-29 07:45:27 +06:30

60 lines
1.5 KiB
Dart

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<Log> logs = [];
List<DocLog> docLogs = [];
void initUser(user) {
super.initUser(user);
_loadLogs();
}
@override
logout() async {
logs = [];
docLogs=[];
}
Future<void> _loadLogs() async {
Stream<QuerySnapshot> 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<void> loadDocLogs(String docID) async {
Stream<QuerySnapshot> 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();
});
}
}