我正在尝试将Firestore文档引用添加到用户文档中的数组字段,以将该引用另存为“收藏夹”。我可以从文档引用数组中读取内容,但是不能使用arrayUnion更新数组或使用arrayRemove从数组中删除元素。
这是我的代码,用于添加对数组的引用:
await userDocument.reference.updateData({'favourites':FieldValue.arrayUnion([documentReference])});
并从数组中删除引用:
await userDocument.reference.updateData({"favourites":FieldValue.arrayRemove([documentReference])});
问题在于出现如下错误:
Unhandled Exception: Invalid argument: Instance of 'DocumentReference'
据我了解,这意味着DocumentUnference无法被arrayUnion / arrayRemove方法接受。
如果确实如此,是否有解决办法?为什么Firebase允许您在项目控制台中添加引用,但不能通过代码添加引用?
答案 0 :(得分:1)
您要取消引用documentReference
,这是不可能的。
因此,您需要这样做:
FieldValue.arrayUnion(documentReference)
代替:
FieldValue.arrayUnion([documentReference])
答案 1 :(得分:0)
这是cloud_firestore: 0.13.0 to 0.13.1+1
中的一个错误,正如我在此处的错误报告:GitHub: DocumentReference doesn't convert to FieldValue所述。
当前可以通过恢复为cloud_firestore: 0.12.11