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