dbGetDocument<T> function
Implementation
Future<List<T>> dbGetDocument<T>(String tableName, String doc, {
String? field1, String? isEqualTo1
}) async{
// if (defaultTargetPlatform == TargetPlatform.windows){
// Map<String, dynamic>? querySnapshot = await dbGetDocumentInTableFirebaseRestApi(tableName, doc);
// if (querySnapshot == null)
// return [];
//
// List<T> t = [];
// switch (T){
// case SubscriptionData:
// if (querySnapshot["subscriptions"] != null){
// for (var item in querySnapshot["subscriptions"]) {
// var s = SubscriptionData.fromJson(doc, item);
// t.add(s as T);
// }
// }
// break;
// default:
// throw Exception("not supported");
// }
// return t;
// }
var querySnapshot = await FirebaseFirestore.instance.collection(tableName).doc(doc).get();
if (!querySnapshot.exists)
return [];
var d = querySnapshot.data();
if (d == null)
return [];
List<T> t = [];
switch (T){
case UserData:
t.add(UserData.fromJson(querySnapshot.id, d) as T);
break;
case OrderDataCache:
var _meData = querySnapshot.data()!;
for (var item in _meData.entries)
t.add(OrderDataCache.fromJson(item.key, item.value) as T);
break;
case SubscriptionData:
if (d["subscriptions"] != null)
for (var item in querySnapshot["subscriptions"]) {
var s = SubscriptionData.fromJson(doc, item);
t.add(s as T);
}
break;
default:
throw Exception("not supported");
}
return t;
}