dengan bantuan setState, listing akan diisi vaiable cars, dimana cars berisi QuerySnapshot. Dan setelah nilai dari cars didapat, akan diubah lagi dengan documents menjadi List. Kemudian map akan mengambil data dari tiap barisnya dengan data . Kemudian untuk membuatnya jadi perbaris dengan toList()
List<Map<String, dynamic>> listing = new List();
@override
void setState(fn) async {
QuerySnapshot cars = await FirebaseFirestore.instance.collection('tasks').get();
listing = cars.documents.map((DocumentSnapshot doc) {
return doc.data;
}).toList();
}
// setState = jika terjadi perubahan, setState yang akan mengubah nilai di dalam variable itu.
// collection(...) = akan mengambil semua data di dalam database firestore
// getDocuments() = mengambil semua data di database firestore menjadi Future<QuerySnapshot>
// async = syntax untuk memanggil await
// await = syntax ini kita gunakan untuk membuat proses 'pengambilan nilai' menunggu dari variable Future<'nama variable'> menjadi
// variable aslinya
// documents = mengubah variable cars menjadi List<DocumentSnapshot>. jadi kita bisa mengakses perbarisnya.
print(cars.documets[0]);
// map((DocumentSnapshot doc) { return doc.data; }).toList(); = mengubahnya menjadi data per baris dalam list
Future<QuerySnapshot> setCars = FirebaseFirestore.instance.collection('tasks').get();
QuerySnapshot cars = await setCars;
// jika di pecah seperti ini. Untuk menthod jika kita menggunakan await, harus ada async dan method harus mengembalikan Future.
// meski sudah menggunakan await
Future<int> angkaFuture(){
int angkanya = await FirebaseFirestore.instance.collection('tasks').get().then((val){
return val.documents.lenght;
});
return angkanya;
}
int angak_tadi = await angkaFuture();
// contonya seperti ini.