Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 将firestore文档转换为颤振类_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

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());