Firebase V9,将子集合添加到现有文档

lif*_*les 11 javascript firebase reactjs google-cloud-firestore

const q = getDoc(doc(db, "customers", user.uid));
Run Code Online (Sandbox Code Playgroud)

您好,这会在 console.log 中返回一个承诺。我有一个客户集合,每个 user.uid 都是其中的一个文档。我想为每个 user.uid 文档创建一个子集合,因此我可以在其中放入一个对象 { 带有一些参数} 。但是如何为每个文档(user.uid)创建一个名为“checkout_sessions”的子集合。任何帮助将不胜感激,请,谢谢

Firebase v8 中就是这样做的。在编写这些行时,firestore 没有一个名为 checkout_sessions 的集合,这似乎为每个 user.uid 创建 1 个集合

const docRef = await db
.collection("customers")
.doc(user.uid)
.collection("checkout_sessions").
add({
 price: priceId,
 and: two,
 more: pairs,
});
Run Code Online (Sandbox Code Playgroud)

我需要创建相同的子集合“checkout_sessions”并在 firebase v9 中添加数据,请谢谢!!!!!!

Fra*_*len 31

将代码重写到 v9 通常是将方法调用更改为等效的函数调用,并将对象作为第一个参数传递。

在您的代码片段中将是:

const docRef = doc(db, "customers", user.uid);
const colRef = collection(docRef, "checkout_sessions")
addDoc(colRef, {
 price: priceId,
 and: two,
 more: pairs,
});
Run Code Online (Sandbox Code Playgroud)


Ayy*_*kar 10

只是跟进弗兰克的回答。如果您想使用 setDoc 设置特定的 id -

const docRef = doc(db, "customers", user.uid, "checkout_sessions", "custom id");
setDoc(docRef, {
    price: priceId,
    and: two,
    more: pairs,
 });
Run Code Online (Sandbox Code Playgroud)