如何将可迭代的联系人从Flutter上传到Firestore

时间:2019-05-04 13:18:56

标签: flutter google-cloud-firestore

我正在创建一个应用程序,它将使用地图类型将所有联系人上载到Firestore数据库。但是以下代码不会将联系人上传到Firestore。请帮忙。

我一直在尝试使用Flutter应用程序将手机中的联系人获取到Firestore。我使用contact_services库来获取联系人。即使尝试了一些类似的示例,我也无法使用地图类型与Firestore联系。我在哪里进行更改,以便可以将所有联系人作为地图值上传到Firestore

final Iterable<Contact> contacts = await ContactsService.getContacts(withThumbnails: false);
Firestore.instance
            .collection('contacts')
            .document(firebaseUser.uid)
            .setData({
          'contact':{ contacts.map((Contact contact){ 'name': contacts.displayName,contacts.phone})}  
        });

我希望将我的所有联系人显示在Firestore中,具有地图类型,但实际输出没有上载。

1 个答案:

答案 0 :(得分:1)

我确定您已解决此问题,因为这是旧帖子。但是,您使用地图方法id Dart的方式有些错误。

  1. 您将元素变量命名为“ contact”,而不是“ contacts”,因此您应该引用该变量以获取信息。因此它将是contact.displayName。

  2. 您没有返回任何东西。因为没有“ =>”,所以没有隐式的收益,因为没有“ return”,所以没有显式的收益。

  3. 此外,您从map方法返回的内容是对联系人字段的迭代。

我不确定您要在这里完成什么。您是否要插入嵌套对象?如果是这样,则您的手机也缺少钥匙