首页 > 解决方案 > Flutter Firestore FieldValue.delete() 使我的应用程序崩溃

问题描述

当我的用户在我的应用上滑动“删除”时,我试图从 firestore 中删除某个字段。但是,每当我这样做时,我都会收到错误:

Future<void> deleteItem(
  String location,
  String sellerName,
  String uid,
  String itemName,
) async {
   if (laCityList.contains(location)) {
      var data = {};
      data[uid] = {itemName: FieldValue.delete()};
      print('THis is in data: ${data}');
      await dbReference.collection('Items LA').document(location).updateData(data);
  }
}

错误:

未处理的异常:类型 '_InternalLinkedHashMap<dynamic, dynamic>' 不是类型 'Map<String, dynamic>' 的子类型

或者如果我这样做:

Future<void> deleteItem(
  String location,
  String sellerName,
  String uid,
  String itemName,
) async {
  if (laCityList.contains(location)) {
    Map<String, dynamic> data = {};
    data[uid] = {itemName: FieldValue.delete()};
    print('THis is in data: ${data}');
    await dbReference
        .collection('Items LA')
        .document(location)
        .updateData(data);
  }
}

错误:

失去与设备的连接

我的firestore的结构如下:

Items -> City -> {UserId: {ItemName : {ItemInformation}}

我想知道我做错了什么,很想得到你的帮助

谢谢

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


推荐阅读