【问题标题】:Error of 'TypeError: storage.ref is not a function'TypeError: storage.ref 不是函数的错误
【发布时间】:2021-08-09 13:42:30
【问题描述】:

这是buttonUploadClicked函数,我已经将firebasestorage导入为const storage = firebase.storage;,但错误仍然存​​在

该函数在单击按钮时运行,并且仅在单击按钮时显示错误

代码如下

const handleUpload = () => {
  var imageName = Math.random(0, 10000) * Math.random(0, 100);
  if (image) {
    const uploadTask = storage.ref(`images/${imageName}.jpg`).put(image);

    uploadTask.on(
      'state_changed',
      (snapshot) => {
        // progress function beta

        const progressP = Math.round((snapshot.bytesTransferred / snapshot.totalBytes) * 100);
        setProgress(progressP);
      },
      (error) => {
        console.log(error);
      },
      () => {
        storage
          .ref('images')
          .child(`${imageName}.jpg`)
          .getDownloadURL()
          .then((imageUrl) => {
            db.collection('posts').add({
              timestamp: firebase.firestore.FieldValue.serverTimestamp(),
              caption: caption,
              photoUrl: imageUrl,
              username: user.email.replace('@gmail.com', '').replace('.', ''),
              picUrl: user.photoURL,
            });
          });
      },
    );
  }
};

【问题讨论】:

  • 请分享初始化firebase存储的代码。您可以隐藏凭据。
  • 这里const firebaseConfig = { apiKey: "AIzaSyBgHeUt6SEuESwZkoK-83qq2DvYDgXmZU4", authDomain: "vimedia-d7580.firebaseapp.com", projectId: "vimedia-d7580", storageBucket: "vimedia-d7580.appspot.com", messagingSenderId: "1000565187437", appId: "1:1000565187437:web:3ecd53b6a7e548a9e63064" };
  • 您在哪里以及如何初始化您的 Firebase?你用的是什么firebase包?你也应该删除你的配置值...
  • 欢迎来到 SO。回复他人时,请在签名前加上他们的姓名,例如@Jay。此外,避免向 cmets 添加代码 - 这真的很难阅读。用该代码更新问题。它还将帮助未来的读者找到问题。

标签: javascript reactjs firebase firebase-storage


【解决方案1】:

尝试替换

const storage = firebase.storage;

通过

const storage = firebase.storage();

"()" 应该可以解决问题 - 您不需要参考“firebase.storage”本身,而是参考它“产生”的内容。

【讨论】:

  • 非常感谢!
猜你喜欢
  • 2022-01-14
  • 2021-01-29
  • 2014-11-18
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多