![](/img/trans.png)
[英]Firestore using Firebase Client SDK V9 Modular with Admin Privileges
[英]Delete a field from Firebase Firestore where the field/key has a period/punctuation (".") - modular v9 JavaScript SDK
如果重要的话,这个问题是针对 React Native Expo 移动应用程序的。
我有一个平面数据库 object。以文档为例:
我添加了一个名为“example.com”的字段/键,其中包含一些任意值。 object 看起来像这样:
{
capital: "words",
location: "other words",
"example.com": "more words"
}
我想从数据库中删除键“example.com”键,我使用的代码与文档中示例中的代码几乎相同。
const cityRef = doc(db, "cities", "BJ");
const payload = {
"example.com": deleteField(),
};
await updateDoc(cityRef, payload);
这不会删除“example.com”键。 我知道这试图从主数据库文档中的“示例”object 中删除“com”键,这不是我想要的,但我不明白如何修改此代码以将整个字符串视为键。
我在 SO(底部的链接)上查看了一些类似的问题,得出的结论是他们必须使用FieldPath
,但语法已经过时,并且不再适用于当前版本的 Firestore(或者至少我可以找不到我正在使用的版本的 FieldPath 文档,上面链接)。
以及有关如何使其正常工作(删除带句点的字段)的提示,我们将不胜感激。
类似问题的链接:
您仍然需要使用 FieldPath,但 API 在新的 v9 模块 SDK 中有所不同。您可以在 API 文档中查看 FieldPath 。 只需将它与您从 Firestore SDK 使用的任何其他功能一起导入即可。
我自己没有使用过它,但是根据链接的文档,我猜它是这样工作的:
import { updateDoc, deleteField, FieldPath } from "firebase/firestore";
...
updateDoc(cityRef, new FieldPath("example.com"), deleteField());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.