【问题标题】:How can I delete fields which has a "_" or "."? [duplicate]如何删除具有“_”或“.”的字段? [复制]
【发布时间】:2020-07-07 20:02:37
【问题描述】:
 let FieldValue = require('firebase-admin').firestore.FieldValue;
 docref.update({ 
     [`${dbuserinfo["username"]}`]: FieldValue.delete()
 });

只要dbuser["username"] 有“_”或“.”它没有删除。没有错误消息,它会默默地跳过这些类型的删除尝试

但是,在以以下方式创建它时,没有任何问题。

docref.set({[dbuser["username"]] : val});

PS: 由于@doug-stevenson 想要一些数据证明,这里是截图 https://imgur.com/FW4uiD3https://imgur.com/nDAgchd

【问题讨论】:

  • 错误信息是什么?使用 update() 返回的承诺。
  • 更新问题并显示错误消息

标签: node.js google-cloud-firestore firebase-admin


【解决方案1】:

根据documentation,以两个下划线__ 开头的字段在Firestore 中无效。此外,句点不是字段的有效字符。 (句点用于引用嵌套地图字段)在尝试访问该字段之前,您应该检查这些情况的字段名称。

对于包含点的字段名称,请read this question。解决方法是使用 FieldValue 构造函数来指定字段的名称。

【讨论】:

  • 嗯,我很清楚文档的那一部分。有两件事,首先它不仅对__ 失败,而且对任何._ 都失败。其次,为什么它首先允许我创建具有._ 的任何东西?
  • 正如我所说,句号在某些情况下不是有效字符。它用于在地图上使用dot notation。请查看文档以获取完整列表。我看不到您数据库中的数据,所以我不知道您是否真的有下划线。也许您想编辑您的问题,以更全面地显示什么不起作用。
  • 啊,所以您需要数据证明。给你,imgur.com/nDAgchdimgur.com/FW4uiD3
  • 什么不起作用? - 我无法删除我设法创建的字段。我认为这是最好的标题。你建议什么标题?我无法删除,仅此而已,“删除”不起作用。
  • 您能否编辑问题以说明您看到的内容以及代码?请对字符串常量进行硬编码,并务必注意具体的错误消息。我们需要能够看到您所看到的,并自行复制。
猜你喜欢
  • 1970-01-01
  • 2011-09-02
  • 2019-01-10
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 2016-02-14
  • 2017-03-14
相关资源
最近更新 更多