繁体   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