Firebase 9 - 如何链接“addDoc”或类似的“集合”?

Tin*_*ger 2 javascript firebase google-cloud-firestore

以前在 Firebase 中,您可以添加如下文档:

const myNewDoc = await db.collection('some-collection-name').add({ //Document details here... });
Run Code Online (Sandbox Code Playgroud)

随着 Firebase 9 的推出,这种情况不再有效。

相反,.add我认为我应该使用导入的.addDoc方法。

但看来我无法链接.addDoc.collection.

如果我尝试做这样的事情:

const myNewDoc = await db.collection('some-collection-name').addDoc({ //Document details here... });
Run Code Online (Sandbox Code Playgroud)

TypeScript 抛出此错误:

Property 'addDoc' does not exist on type 'CollectionReference<DocumentData>'.ts(2339)
Run Code Online (Sandbox Code Playgroud)

可以创建更详细的内容,如下所示:

const someCol = collection(db, "some-collection-name");
const newDoc = await addDoc(someCol, {
    //Document details here...
});
Run Code Online (Sandbox Code Playgroud)

但我宁愿像以前一样“链接”它。

那可能吗?该怎么做呢?

我什至应该使用吗.addDoc?或者是其他东西?

Dha*_*raj 6

addDoc()是 Modular SDK 中的顶级函数。尝试像这样重构您的代码:

import { collection, addDoc } from "firebase/firestore"; 

const newDoc = await addDoc(collection(db, "some-collection-name"), {
  // Document Data
});
console.log("Document written with ID: ", newDoc.id);
Run Code Online (Sandbox Code Playgroud)

文档包含名称空间和新语法的示例。


如果您使用compat版本来使用较旧的语法,那么您将必须使用add()其自身。