loadBookingCache function
Implementation
Future<String?> loadBookingCache(String listen, String providerId) async {
try{
User? user = FirebaseAuth.instance.currentUser;
work(querySnapshot){
// dprint("loadBookingCache");
ordersDataCache = [];
if (querySnapshot.exists){
if (querySnapshot.data() != null) {
var _meData = querySnapshot.data()!;
for (var item in _meData.entries){
var t = OrderDataCache.fromJson(item.key, item.value);
if (!t.delete && t.status != "temp") {
if (listen.isEmpty) { // admin
ordersDataCache.add(t);
} else {
if (user != null) { // customer app and provider app
if (listen == "customerId" && t.customerId == user.uid)
ordersDataCache.add(t);
if (listen == "providerId" && t.providerId == providerId)
ordersDataCache.add(t);
}
}
}
}
}
ordersDataCache.sort((a, b) => b.time.compareTo(a.time));
}
}
var querySnapshot = await FirebaseFirestore.instance.collection("cache").doc("orders").get();
work(querySnapshot);
FirebaseFirestore.instance.collection("cache")
.doc("orders").snapshots().listen((querySnapshot) {
work(querySnapshot);
redrawMainWindow();
});
}catch(ex){
return "loadBookingCache " + ex.toString();
}
return null;
}