import 'dart:convert'; import 'package:firebase/firebase.dart'; import 'package:firebase/firestore.dart'; import 'classes/index.dart'; class FbFirestore { FbFirestore._(); static Firestore _firestore = firestore(); static Future> getDocs(String path) async { final _data = await _firestore.collection(path).get(); if (_data == null) return null; if (_data?.docs == null || _data.docs.isEmpty) return []; List _items = []; _data.docs.forEach((d) { _items.add(FbDocumentSnapshot(d.id, data: _getData(d))); }); return _items; } static Future editDoc(String path, Map data, {bool update = false}) async { if (update) { await _firestore.doc(path).update(data: data); } else { await _firestore.doc(path).set(data); } } static Future addDoc(String path, Map data) async { await _firestore.collection(path).add(data); } static Future deleteDoc(String path) async { await _firestore.doc(path).delete(); } static Future getDoc(String path) async { final _data = await _firestore.doc(path).get(); return FbDocumentSnapshot(_data.id, data: _getData(_data)); } static Map _getData(DocumentSnapshot d) { if (d?.data() == null) return null; return json.decode(json.encode(d.data())); } }