簡體   English   中英

從 Firebase Firestore 中刪除字段/鍵帶有句點/標點符號 (".") 的字段 - 模塊化 v9 JavaScript SDK

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM