从颤动更新地图中的云 Firestore 数据

时间:2021-02-05 21:00:44

标签: flutter dart google-cloud-firestore

这是我的代码:

child: new GridView.count(
    crossAxisCount: 3,
    children: snapshot.data.documents.map<Widget>((DocumentSnapshot document) {
        return new MoodButton(
            iconData: (IconData(document.data()['ref'],fontFamily: 'MaterialIcons')),
            onTap: () =>
                document.data()[document.data()['ref']].updateData({"display": true}),
        );
     }).toList(),
)

我正在尝试将已点击的图标的 display 值从 false 更新为 true。 问题在于行 document.data()[document.data()['ref']].updateData({"Display": true}),。我不确定如何更新已单击的特定图标的数据。 我得到的错误是:

The method 'updateData' was called on null.
Receiver: null
Tried calling: updateData(_LinkedHashMap len:1)

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我是按照 this 教程找到的。

我用 onTap: () => document.data()[document.data()['ref']].updateData({"display": true}), 替换了 onTap: () => updateData((document.data()['name']), {'display' : true}),

然后添加

updateData(selectedDoc, newValues) {
    print(selectedDoc);
    print(newValues);
      FirebaseFirestore.instance
          .collection('icons')
          .doc(selectedDoc)
          .update(newValues)
          .catchError((e) {
        print(e);
      });
    }