簡體   English   中英

Firebase V9 - 創建時自定義“文檔 ID”(Javascript)

[英]Firebase V9 - Custom 'Doc ID' Upon Creation (Javascript)

我想在 Firebase Firestore 中使用 Javascript 創建一個文檔...這不僅具有自動生成的 ID

return addDoc(collection(db, "users"), { bio: signupForm['signup-bio'].value });

這就是我的編碼方式,有人可以告訴我在哪里或如何向文檔添加自定義 ID 嗎?

謝謝

對我來說,以下工作:

    await setDoc(doc(db, "collection/" + newId), { field: value} )

為了在Firestore中設置自定義文檔 ID,您需要使用set方法而不是add

db.collection("users").doc("YOUR_ID").set({
    bio: signupForm['signup-bio'].value
});

您可以參考官方文檔,了解如何設置文檔,其中聲明:

要創建或覆蓋單個文檔,請使用 set() 方法:

// Add a new document in collection "cities"
db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
})
.then(() => {
    console.log("Document successfully written!");
})
.catch((error) => {
    console.error("Error writing document: ", error);
});

如果文檔不存在,則會創建它。 如果文檔確實存在,則其內容將被新提供的數據覆蓋,除非您指定數據應合並到現有文檔中...

好吧,我想通了...

為新文檔創建自定義 ID 如下...

setDoc(doc(db, 'collection', 'ID'), { feild: value, feild: value });

或者以我為例...

setDoc(doc(db, 'users', (cred.user.uid), { bio: signupForm['signup-bio'].value });

這將創建一個新文檔(如果它不存在,則創建用戶集合),ID 是當前登錄的用戶 UserID,文檔中的數據是來自名為“signup-bio”的注冊表單的值

對於將集合用作變量/現有 function 的人。

Typescript中的示例像這樣https://javascript.plainenglish.io/using-firestore-with-typescript-in-the-v9-sdk-cf36851bb099

普通的:

const docRef = doc(helloCol())

你也可以做類似的事情......

const docRef = doc(helloCol(), 'some-id')
// await setDoc(docRef, { /* data */ })

不改變helloCol()

參考:https://firebase.google.com/docs/reference/js/firestore_.md#doc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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