无法从 Firestore 文档中删除字段 (Flutter)

Posted

技术标签:

【中文标题】无法从 Firestore 文档中删除字段 (Flutter)【英文标题】:Can't delete field from a firestore document (Flutter) 【发布时间】:2020-10-31 09:46:26 【问题描述】:

我正在尝试从 firestore 文档中删除一个字段,但它不起作用。我正在使用相同的路径从 firebase 存储中存储和检索文件,并且 delete() 函数与 firebase 存储完美配合,但不适用于 firestore 文档的字段。代码如下:

Firestore.instance.collection("Albums").document("$userName")
    .updateData('$fileName': FieldValue.delete()).whenComplete(() => print("Deleted"));

它会打印“已删除”,但不会从 firestore 文档中删除指定的字段。

【问题讨论】:

【参考方案1】:

您将文字字符串“$userName”和“$fileName”传递给 Firestore,而不是变量 userNamefileName 的值。如果您想使用变量的值,请这样做:

var data = ;
data[fileName] = FieldValue.delete();
Firestore.instance.collection("Albums").document(userName)
    .updateData(data)

【讨论】:

【参考方案2】:

正如道格所说,您似乎正在传递文字字符串。可以参考官方Firestore documentation指导。还有更多例子here

var cityRef = db.collection('cities').doc('BJ');

// Remove the 'capital' field from the document
var removeCapital = cityRef.update(
    capital: firebase.firestore.FieldValue.delete()
);

【讨论】:

以上是关于无法从 Firestore 文档中删除字段 (Flutter)的主要内容,如果未能解决你的问题,请参考以下文章

使用nodejs从firestore文档中删除字段

如何使用颤振删除 Firestore 文档中的字段

无法使用 SwiftUI 从 Firebase / Firestore 中删除文档

FieldValue.delete() 不会删除 firestore 文档中的字段键

如何从flutter中的firestore文档字段中获取数据?

Firestore使用Rest API更新文档字段