开发者问题收集

Firebase addDoc 错误 => admin:1 未捕获(在承诺中)FirebaseError:预期类型为“Na”,但它是:一个自定义对象

2022-10-02
375

我收到此错误。我已成功将图像添加到存储并获取 URL,但当我想将文档添加到我的收藏夹时,我收到此错误。我正在以与 Firebase 相同的方式实现代码,此处为 addDoc => 的参考 https://firebase.google.com/docs/firestore/manage-data/add-data#web-version-9_1

admin:1 Uncaught (in promise) FirebaseError: Expected type 'Na', but it was: a custom an object

uploadTask.on(
  "state_changed",
  (snapshot) => {
    setProgress((snapshot.bytesTransferred / snapshot.totalBytes) * 100);
    console.log();
  },
  (error) => {
    console.log(error);
  },
  () => {
    // Get ImageURL
    getDownloadURL(uploadTask.snapshot.ref).then((downloadURL) => {
      setImgURL(downloadURL);
      // Add new collection document to FIREBASE
      addDoc(portfolioItemsCol, {
        img: downloadURL,
        title: title,
      })
        .then((docRef) => {
          console.log("Document succesfully Added");
        })
        .catch((err) => console.log(err));
    });
  }
);

代码链接: https://codesandbox.io/s/exciting-ace-ttbjqv?file=/src/App.js

1个回答

避免同时使用 常规精简 版本。在这里,您使用的是 firebase/firestore/lite 中的 getFirestore() ,但使用的是 firebase/firestore 中的 addDoc() 。尝试在 App.js 中使用以下导入:

import { addDoc } from "firebase/firestore/lite" // <-- add /lite

或者,从常规 SDK 导入 getFirestore() ,但如果您以后需要使用实时侦听器,这将很有用。

Dharmaraj
2022-10-02