我一直在嘗試使用 Futurebuilder 查詢快照從 firebase 集合中獲取特定資料。我為查詢快照創建了一個類,它是:
class Crud {
final currentUser = FirebaseAuth.instance.currentUser!.uid;
Future<QuerySnapshot> getData() async {
return await FirebaseFirestore.instance
.collection("userpreferences")
.where(FirebaseAuth.instance.currentUser!.uid)
.get();
}
}
這是我的未來建造者。
FutureBuilder<QuerySnapshot>(
future: crud.getData(),
builder: (context, snapshot) {
if (snapshot.hasData) {
final querySnaphost = snapshot.data; // Get query snapshot
if (querySnaphost!.docs.isNotEmpty) {
print(querySnaphost.docs[0].data());
// Print is giving correct documents
// I/flutter (16837): {peopletohangoutwith: Testing it again
// I/flutter (16837): , agerange: 29 - 49}
// Document exists
final documentSnapshot = querySnaphost.docs;
我只想agerange從這個檔案中顯示。我正在使用 Text 來顯示它。如果有人能告訴我如何獲取資料,請告訴我。謝謝
uj5u.com熱心網友回復:
由于您在創建 時沒有指定檔案包含哪些資料StreamBuilder,所以Object當您呼叫data(). 您需要將其轉換為 aMap<String, dynamic>然后才能從中獲取各個欄位:
var data = Map<String,dynamic>.from(querySnaphost.docs[0].data() as Map);
return Text(data["peopletohangoutwith"]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/489969.html
