Firebase 获取错误:参数类型';产品';can';不能分配给参数类型';地图<;字符串,动态>;

Firebase 获取错误:参数类型';产品';can';不能分配给参数类型';地图<;字符串,动态>;,firebase,dart,flutter,model,bloc,Firebase,Dart,Flutter,Model,Bloc,我试图添加一些新数据,但出现错误: 无法将参数类型“Product”分配给参数类型“Map” 以下是我想做的: 我有一个只有2TextFields的表单 我已经声明了一个包含数据的地图 final Map<String, dynamic> _formData = { 'title': null, 'content': null, }; 在bloc中,我将其传递给提供者,如下所示: void createData(Product product)

我试图添加一些新数据,但出现错误:

无法将参数类型“Product”分配给参数类型“Map”

以下是我想做的: 我有一个只有2
TextField
s的表单 我已经声明了一个包含数据的地图

final Map<String, dynamic> _formData = {
      'title': null,
      'content': null,
    };
在bloc中,我将其传递给提供者,如下所示:

  void createData(Product product) async {
    String id = await db.createData(product);
    _inId.add(id);
  }
现在它来了:

Future createData(Product product) async {
    DocumentReference ref = await db.collection("product").add(product); //error: The argument type 'Product' can't be assigned to the parameter type 'Map<String, dynamic>
    print(ref.documentID);
    return ref.documentID;
}

您需要将产品转换为地图

例如:

Future createData(Product product) async 
{ 
    await db.collection("product").add( _convertProductToMap(product));
}

Map<String, dynamic> _convertProductToMap( Product product )
{
    Map<String, dynamic> map = {};
    map['title'] = product.title;
    map['content'] = product.content;

   return map;
}
Future createData(产品)异步
{ 
等待数据库收集(“产品”)。添加(_convertProductToMap(产品));
}
映射转换产品映射(产品)
{
Map={};
map['title']=product.title;
map['content']=product.content;
返回图;
}
从数据库中检索数据后,还需要将后向映射转换为产品对象

class Product {

  final String title, content;

  Product({this.title, this.content});

}
Future createData(Product product) async 
{ 
    await db.collection("product").add( _convertProductToMap(product));
}

Map<String, dynamic> _convertProductToMap( Product product )
{
    Map<String, dynamic> map = {};
    map['title'] = product.title;
    map['content'] = product.content;

   return map;
}