我正在尝试将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允许您在项目控制台中添加引用,但不能通过代码添加引用?

最佳答案

您正在取消引用documentReference,这是不可能的。

因此,您需要执行以下操作:

FieldValue.arrayUnion(documentReference)

代替:
FieldValue.arrayUnion([documentReference])

关于firebase - Firestore DocumentReference可以在arrayUnion方法中传递吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60152474/

10-13 01:13