代码之家  ›  专栏  ›  技术社区  ›  TinyTiger

如何更新Firestore字段以给它一个空值(未定义或空)?

  •  0
  • TinyTiger  · 技术社区  · 3 年前

    我的Firestore文档有一个已设置值的字段。

    现在我想通过将其设置为表示“空”的值来移除该值,例如 null undefined .

    到目前为止,我已经试着用 updateDoc 方法如下:

    updateDoc(documentReference,{ photoURL: undefined })
    

    但它抛出了一个错误:

    使用无效数据调用函数updateDoc()。不支持的字段值:未定义(在document users/D23xxxxxxxxxxxxxx12中的字段photoURL中找到)

    并将其设置为 无效的 也不允许,因为如果我尝试将其设置为 无效的

    updateDoc(documentReference,{ photoURL: null })
    

    TypeScript将抛出以下错误:

    类型“null”不可分配给类型“FieldValue | Partial | undefined”。

    我发现使用一个空字符串 updateDoc(documentReference,{ photoURL: "" }) 这很管用,但它没有你想象的那么优雅 无效的 未定义 .

    如果找不到其他解决方案,我将使用空字符串,但也许还有其他方法?

    1 回复  |  直到 3 年前
        1
  •  2
  •   Doug Stevenson    3 年前

    Firestore无法识别javascript undefined 作为有效值。您可以在 documentation .Null是有效的类型,因此您应该能够使用它。如果没有,那么应该针对正在使用的SDK提交一个bug。如果您使用的是web客户端SDK, use this GitHub .确保提供完整的复制步骤。

    如果您想简单地删除字段,使其完全没有类型,只需 remove the field 并检查执行查询的代码中缺少的字段。