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