Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 Flatter firestore数据库添加贴图类型_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase Flatter firestore数据库添加贴图类型

Firebase Flatter firestore数据库添加贴图类型,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我在使用Flatter在firestore数据库中保存数据时遇到问题,我有两个类: class Level { final String name; final List<Materia> materie; Level({ this.name, this.materie, }); Map toJson() { return {"name": name, "materie": materie}; } } class Materia ex

我在使用Flatter在firestore数据库中保存数据时遇到问题,我有两个类:

class Level {
  final String name;
  final List<Materia> materie;
  Level({
    this.name,
    this.materie,
  });
  Map toJson() {
     return {"name": name, "materie": materie};
  }
}
class Materia extends Taggable {
  final String name;
  Materia({
    this.name,
  });
  @override
  List<Object> get props => [name];
}
这是我用来保存数据的代码:

Future<bool> saveProfile({String uid, String name, String surname, String address, List<Level> level}) async {
    try {
      Firestore.instance.collection('users').document(uid).updateData({ 'name': name, 'surname': surname, 'address': address, 'level': level.toJson() });
      return true;
    }  catch (e) {
      // throw the Firebase AuthException that we caught
      throw new Exception(e.toString());
    }
  }
Future saveProfile({String uid,String name,String姓氏,String address,List level})异步{
试一试{
Firestore.instance.collection('users').document(uid).updateData({'name':name,'姓氏':姓氏,'地址','level':level.toJson()});
返回true;
}捕获(e){
//抛出我们捕获的Firebase AuthException
抛出新异常(例如toString());
}
}

谢谢

您需要在Level类中创建一个映射器函数,如下所示:

Map to json(){
返回{
“姓名”:姓名,
“材料”:材料
};
}
然后更新Firebase更新代码,如下所示:
Firestore.instance.collection('users').document(uid).updateData({'name':name,'姓氏':姓氏,'address':address,'level':level.toJson()})

我尝试了,但没有成功,我已经用all save函数更新了原始问题,我无法在列表中调用JSON您已经在函数中声明了
level
List
,但是您正在传递一个
level
,所以将函数中的参数更改为
level
Future<bool> saveProfile({String uid, String name, String surname, String address, List<Level> level}) async {
    try {
      Firestore.instance.collection('users').document(uid).updateData({ 'name': name, 'surname': surname, 'address': address, 'level': level.toJson() });
      return true;
    }  catch (e) {
      // throw the Firebase AuthException that we caught
      throw new Exception(e.toString());
    }
  }