我正在尝试从Firestore文档中删除字段,但无法正常工作。我使用相同的路径来存储和从Firebase存储中检索文件,并且delete()函数与Firebase存储完美配合,但与Firestore文档的字段不能完美配合。这是代码:
Firestore.instance.collection("Albums").document("$userName")
.updateData({'$fileName': FieldValue.delete()}).whenComplete(() => print("Deleted"));
它会打印“已删除”,但不会从Firestore文档中删除指定的字段。
答案 0 :(得分:1)
您正在将文字字符串“ $ userName”和“ $ fileName”传递给Firestore,而不是变量userName
和fileName
的值。如果要使用变量的值,请按以下步骤操作:
var data = {};
data[fileName] = FieldValue.delete();
Firestore.instance.collection("Albums").document(userName)
.updateData(data)
答案 1 :(得分:1)
正如道格所说,似乎您正在传递文字字符串。您可以参考官方的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()
});