【问题标题】:How to post list object to cloud firestore firebase in flutter如何在颤动中将列表对象发布到 Cloud Firestore Firebase
【发布时间】:2019-11-08 06:09:55
【问题描述】:

我的列表为

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

请帮帮我!

【问题讨论】:

    标签: android ios firebase dart flutter-layout


    【解决方案1】:

    我已解决如下

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

    【讨论】:

      【解决方案2】:

      Flutter 有这个大师的官方文档。推荐使用“json_serializable”,dart代码由命令行自动生成

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

      【讨论】:

        猜你喜欢
        • 2020-06-07
        • 2020-11-02
        • 2021-03-17
        • 2020-04-07
        • 2020-01-18
        • 2019-09-13
        • 1970-01-01
        • 1970-01-01
        • 2020-06-29
        相关资源
        最近更新 更多