如何在Flutter中将列表对象发布到Cloud Firestore Firebase

我的列表为

class MyContact {
String username = "";
List<Phone> phones = List<Phone>();
MyContact({this.username,this.phones});
}

class Phone {
String phone = "";

Phone({this.phone});
}

和更新方法

  _updateContact() async {
var contacts = (await ContactsService.getcontacts()).toList();
List<MyContact> myContacts = List<MyContact>();
contacts.forEach((contact) {
  var myContact = MyContact();
  myContact.username = contact.displayName;
  contact.phones.forEach((phone) {
    myContact.phones.add(Phone(phone: phone.value));
  });
  myContacts.add(myContact);
});

await Firestore.instance
    .collection("contacts")
    .document()
    .setData(????);
}

请帮助我!

longsheng923123 回答:如何在Flutter中将列表对象发布到Cloud Firestore Firebase

我已经解决了以下问题

class MyContact {
  String userName = "";
  List<Phone> phones = List<Phone>();

 MyContact({this.userName,this.phones});

 Map<String,dynamic> toJson() {
 return {
  "name": userName,"phones": phones.map((phone) => phone.toJson()).toList(),};
}
}

class Phone {
String phone = "";

Phone({this.phone});

Map<String,dynamic> toJson() {
return {
  "phone": phone,};
}
}

方法更新

_updateContact() async {
var contacts = (await ContactsService.getContacts()).toList();
List<MyContact> myContacts = List<MyContact>();
contacts.forEach((contact) {
  List<Phone> phones = List<Phone>();
  contact.phones.forEach((phone) {
    phones.add(Phone(phone: phone.value));
  });
  myContacts.add(MyContact(userName: contact.displayName,phones: phones));
});

Map<String,dynamic> map = {
  'contact': myContacts.map((myContact) => myContact.toJson()).toList()
};
await Firestore.instance
    .collection("contacts")
    .document()
    .setData(map);
}
,

Flutter具有该大师的正式文件。建议使用“ json_serializable”,以使Dart代码由命令行自动生成

https://flutter.dev/docs/development/data-and-backend/json

本文链接:https://www.f2er.com/3139953.html

大家都在问