使用动态密钥从Firestore中删除字段 [英] Delete a field from Firestore, with a dynamic key

查看:46
本文介绍了使用动态密钥从Firestore中删除字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从Firestore中的文档中删除单个字段 该字段的关键字保存在变量中,例如

I am trying to delete a single field from a Document in Firestore The Key of the field is held in a variable e.g.

var userId = "random-id-1"

在文档中,我有一个成员结构如下:

In the document I have a field of members structured like this:

{
  members:{
    random-id-1:true,
    random-id-2:true
  }
}

我想删除random-id-1:true,但保留random-id-2:true

在没有获取整个成员对象和编写更新的对象的情况下怎么办?

How is this possible without getting the entire members object and writing an updated object?

我尝试了,但是出现错误:Document references must have an even number of segments

I have tried this, however I get the error: Document references must have an even number of segments

我也尝试过这个:

db.collection('groups').doc(this.props.groupId).set({
  members: {
    [userId]: firebase.firestore.FieldValue.delete()
  }
},{merge: true})

但是我得到了错误:Function DocumentReference.update() called with invalid data. FieldValue.delete() can only appear at the top level of your update data

感谢您的帮助

推荐答案

我设法删除了这样的字段:

I have managed to delete a field like this:

let userId = "this-is-my-user-id"
let groupId = "this-is-my-group-id"

db.collection('groups').doc(groupId).update({
  ['members.' + userId]: firebase.firestore.FieldValue.delete()
})

这是使用此处请告知我是否有其他替代方法

Please let me know if there are any alternative methods to this

谢谢

这篇关于使用动态密钥从Firestore中删除字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆