typescript 如何删除Firestore文档中的字段?

umuewwlo  于 2023-01-02  发布在  TypeScript
关注(0)|答案(6)|浏览(150)

如何删除云Firestore中的文档字段?...我正在使用下面的代码,但我不能。

this.db.doc(`ProfileUser/${userId}/followersCount/FollowersCount`).update({ 
[currentUserId]: firebase.firestore.FieldValue.delete()})

这可能吗?如果可能,又是如何做到的?

abithluo

abithluo1#

您可以尝试如下所示:

// get the reference to the doc
let docRef=this.db.doc(`ProfileUser/${userId}/followersCount/FollowersCount`);

// remove the {currentUserId} field from the document
let removeCurrentUserId = docRef.update({
    [currentUserId]: firebase.firestore.FieldValue.delete()
});
deikduxw

deikduxw2#

这对我很有效。(也可以删除空值字段)

document.ref.update({
  FieldToDelete: admin.firestore.FieldValue.delete()
})
0s7z1bwu

0s7z1bwu3#

使用Firebase版本9(2022年2月更新):

如果集合**"用户"具有一个文档(dWE72sOcV1CRuA0ngRt5),其中字段"姓名""年龄""性别"**,如下所示:

users > dWE72sOcV1CRuA0ngRt5 > name: "John", 
                               age: 21, 
                               sex: "Male"

您可以使用以下代码删除字段**"年龄"
x一个一个一个一个x一个一个二个x
您可以使用以下代码删除多个字段
"年龄""性别"**:
一个三个三个一个

t9eec4r0

t9eec4r04#

由于某种原因,所选答案(firebase.firestore.FieldValue.delete())对我不起作用。但以下答案起作用:
只需将该字段设置为null,它就会被删除!

// get the reference to the doc
let docRef=this.db.doc(`ProfileUser/${userId}/followersCount/FollowersCount`);

// remove the {currentUserId} field from the document
let removeCurrentUserId = docRef.update({
    [currentUserId]: null
});
uklbhaso

uklbhaso5#

小心使用这个admin.firestore.FieldValue.delete()因为查询不工作,如果你试图删除文档上不可用的字段.
因此,我认为最好设置null

this.db.doc(`ProfileUser/${userId}/followersCount/FollowersCount`).update({ 
[currentUserId]: null})

await db.doc(`ProfileUser/${userId}/followersCount/FollowersCount`)
            .set({[currentUserId]: null}, { merge: true })
bmvo0sr5

bmvo0sr56#

如果以上所有方法对您无效(像我一样),请使用此功能

const deleteField = async() => {
    firestore.collection("users").get().then(function(querySnapshot) {
      querySnapshot.forEach(function(doc) {
          doc.ref.update({
              date_of_birth: firestore.FieldValue.delete()
          });
      });
  });
}

相关问题