Firebase 将firestore文档转换为颤振类
我有一个名为Firebase 将firestore文档转换为颤振类,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我有一个名为Consultant的类,我从用户那里为我的应用程序收集数据 class Consultant { final int id; final String consultantFirstName; final String consultantLastName; final String consultantNickName; final String consultantImageProfile; final String consultantCategory
Consultant
的类,我从用户那里为我的应用程序收集数据
class Consultant {
final int id;
final String consultantFirstName;
final String consultantLastName;
final String consultantNickName;
final String consultantImageProfile;
final String consultantCategory;
final String consultantDescription;
final String consultantLikes;
final String consultantReviews;
final String consultantStars;
final String consultantPrice;
final String consultantExperience;
const Consultant({
this.id,
this.consultantFirstName,
this.consultantLastName,
this.consultantNickName,
this.consultantImageProfile,
this.consultantCategory,
this.consultantDescription,
this.consultantLikes,
this.consultantReviews,
this.consultantStars,
this.consultantPrice,
this.consultantExperience,
});
}
下面是我的一个用户的示例:
final Consultant marco = Consultant(
id: 1,
consultantFirstName: 'Marco',
consultantLastName: 'Marcello',
consultantNickName: 'Tarot and Dreams',
consultantCategory: 'Tarocchi',
consultantDescription: 'Ciao a tutti sono Rocco',
consultantImageProfile: 'assets/images/rocco.jpg',
consultantLikes: '2342',
consultantReviews: '76245',
consultantPrice: '3.90',
consultantExperience: '12',
);
List<Consultant> consultant = [
marco,
carmela,
sabrina,
saverio,
pamela,
giovanni
];
这将允许我从数据库中获取信息并推送到正确的小部件
这可能吗?要在本地类中转换firestore中的数据,可以在类中创建构造函数方法:
Consultant.fromSnapshot(Map<String, dynamic> snapshot)
: consultantFirstName = snapshot['name'],
consultantLastName = snapshot['last_name'],
consultantNickName = snapshot['nickname'];
如果还需要保存ID,请执行以下操作:
Consultant.fromSnapshot(String id, Map<String, dynamic> snapshot)
: consultantId= id,
consultantFirstName = snapshot['name'],
consultantLastName = snapshot['last_name'],
consultantNickName = snapshot['nickname'];
对于构建小部件,最简单的方法是使用FutureBuilder,在检索信息时更新您的顾问集合
DocumentSnapshot snapshot= await db.collection('consultants').doc(/*consultant id*/).get();
if(snapshot.exists) Consultant consultant = Consultant.fromSnapshot(snapshot.data());
Consultant.fromSnapshot(String id, Map<String, dynamic> snapshot)
: consultantId= id,
consultantFirstName = snapshot['name'],
consultantLastName = snapshot['last_name'],
consultantNickName = snapshot['nickname'];
Consultant consultant = Consultant.fromSnapshot(snapshot.id,snapshot.data());