我试图在 firestore 中保存一些数据,数据由事件组成,每个事件都有一个日期和每个参与者。我现在要做的是像这样建模events/${eventDate}/${userEmail},然后我会用用户的数据来设置它。但是,当我尝试设置此数据时,我收到一条错误消息,指出段号应该是偶数。当我在路径中添加另一个段时(我不想这样做):events/${eventDate}/attendees/${userEmail} 我能够设置数据,但无法检索它(尝试检索给定活动日期的所有参与者。// insertion - this worked after some tweakingthis.db.collection('pickups').doc(pickupDate).set({ [email]: userData})// deletion (this doesn't work - expects even number of segments)this.db.collection('pickups').doc(`${pickupDate}/${email}`).delete()// retrieval (works)this.db.collection('pickups').doc(pickupDate).valueChanges()当前删除: this.db.collection('pickups').doc(pickupDate).update({ [email]: firestore.FieldValue.delete() })我在这里缺少什么?这不应该像普通的 JSON 吗?
2 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
听起来您要做的是从文档中删除一个字段。但是,您拥有此代码:
this.db.collection('pickups').doc(`${pickupDate}/${email}`).delete()
正在尝试构建对集合的引用,然后将其删除。在文档中使用collection()和doc()引用字段是不正确的。它们仅用于构建对文档和集合的引用。
如果要删除文档中的字段,请先构建对包含该字段的文档的引用:
const ref = this.db.collection('pickups').doc(pickupDate)
然后更新文档以指示您希望删除该字段:
ref.update({ [email]: firebase.firestore.FieldValue.delete() }}
您从 FieldValue 中引用delete()的方式将根据您将 SDK 导入代码的方式而改变。
添加回答
举报
0/150
提交
取消