initService function
Implementation
Future<String?> initService(String listen, String providerId, Function() callback) async{
if (_loadProcess)
return null;
_loadProcess = true;
product = [];
dprint("initService get from 'service' where $listen arrayContains $providerId");
await _getLocal();
bool _localLoad = false;
if (product.isEmpty) {
late QuerySnapshot<Map<String, dynamic>> querySnapshot;
if (listen == "all")
querySnapshot = await FirebaseFirestore.instance.collection("service").get();
else
querySnapshot = await FirebaseFirestore.instance.collection("service")
.where(listen, arrayContains: providerId).get();
for (var result in querySnapshot.docs) {
var _data = result.data();
var t = ProductData.fromJson(result.id, _data);
if (!t.delete)
product.add(t);
}
addStat("product", querySnapshot.docs.length);
}else
_localLoad = true;
product.sort((a, b) => b.timeModify.compareTo(a.timeModify));
if (product.isEmpty)
_last = DateTime.now();
else
_last = product[0].timeModify; //timeUtc;
if (!_localLoad)
_saveLocal(_last);
dprint("services init count=${product.length}");
callback();
_loadProcess = false;
return await _listen(listen, providerId, callback);
}