[英]Firestore data into a Model class
我有以下 Firestore 數據庫;
在我的第一頁中,我查詢所有“其他”集合文檔並列出每個文檔的“名稱”和“姓氏”字段,並使用一個按鈕將我重定向到該人的頁面。
class FirstPage extends StatelessWidget {
const FirstPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return FutureBuilder<QuerySnapshot>(
future: FirebaseFirestore.instance
.collection('Other')
.get(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
var documents = snapshot.data!.docs;
ListView.builder(
itemCount: documents.length,
itemBuilder: (context, index) {
return TextButton(
child: Text(documents[index]['name']),
onPressed: () => Get.to(() => const Person()),
);
},
);
}
},
);
}
}
我知道我可以像這樣簡單地將“姓名”和“姓氏”的最終參數添加到Person class 中;
class Person extends StatelessWidget {
final String name;
final String surname;
const Person({Key? key, required this.name, required this.surname}) : super(key: key);
但是在Person class 中,我必須將該信息傳遞給后續頁面,並且通過構造函數背靠背傳遞參數似乎不是一個好習慣。
From my knowledge with other programming languages I could simply generate a Model class with Setters and Getters and once a button of a person is clicked I'd set all of his information in this model class and get them in the following pages and so on.
在 Flutter/Dart 中為此目的生成 model class 是一個好習慣嗎? 如果是這樣,我該如何生成這個 model class?
由於缺乏答案,不得不使用此臨時解決方案並將此 model class 傳遞給需要信息的每個小部件。 我仍在尋找這方面的最佳實踐,但這也能奏效。
import 'package:cloud_firestore/cloud_firestore.dart';
class PersonModel {
String name, surname;
PersonModel({
required this.name,
required this.surname,
});
factory PersonModel.fromMap(Map<dynamic, dynamic> map) {
return PersonModel(
name: map['name'],
surname: map['surname'],
);
}
Map<dynamic, dynamic> toMap() {
return {
'name': name,
'surname': surname,
};
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.