簡體   English   中英

db.collection("articles").add 導致“.default.collection 不是函數”

[英]db.collection("articles").add results in ".default.collection is not a function"

本質上,我想添加一個名為“articles”的集合,其中包含以下參與者並將其存儲在 firebase 中。

我按照文檔將文件上傳到 firebase。 我正在閱讀數據添加到 firebase 的文檔,但這有點令人困惑,不知道如何實現它。

index.js(查看另一個上半部分, 在這里

...
() => {
   getDownloadURL(upload.snapshot.ref).then((downloadURL) => {
    db.collection("articles").add({
      actor: {
        description: payload.user.email,
        title: payload.user.displayName,
        date: payload.timestamp,
        image: payload.user.photoURL,
        },
        video: payload.video,
        sharedImg: downloadURL,
        comments: 0,
        description: payload.description,
       });
   });
}

但是,每當我運行此代碼時,我都會收到“未處理的拒絕(TypeError): firebase__WEBPACK_IMPORTED_MODULE_0 _.default.collection 不是 function。”

firebase.js

import { initializeApp } from 'firebase/app';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getStorage } from "firebase/storage";
import { getFirestore } from "firebase/firestore";

const firebaseConfig = {
...
}

const firebaseApp = initializeApp(firebaseConfig);
const db = getFirestore(firebaseApp);
const auth = getAuth();
const provider = new GoogleAuthProvider();
const storage = getStorage(firebaseApp);
  
export { auth, provider, storage };
export default db;

關於出了什么問題的任何建議? 謝謝!

與上一個問題相同,由於您使用 v9 語法導入特定函數,因此您不能再調用dbCollectionReference上的方法。

v9 模塊化語法中的代碼段等效於:

const collectionRef = collection(db, "articles")
addDoc(collectionRef, { ... })

我強烈建議您花一些時間在 Firebase 文檔中編寫數據升級指南,以熟悉現有代碼中的語法如何映射到新語法。


如果您不想升級代碼,也可以考慮使用 v9 SDK 的compat路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM