Firebase 存储 getDownloadURL 不断返回未定义的错误

时间:2021-05-19 21:02:13

标签: javascript firebase vue.js vuejs2 firebase-storage

我正在尝试在存储在 Firebase 存储中的 Vue/Quasar 项目中显示图像。我遵循了文档中的每一步。每次使用 getDownloadURL() 方法时,都会收到此错误“无法读取未定义的属性 'getdownloadURL'”。有谁知道为什么我的代码不起作用?

我还尝试了 Firebase 文档中的所有其他方法,但遇到了同样的错误。

<块引用>

storage.refFromURL('gs://bucket/images/stars.jpg')

Firebase.js 文件

import firebase from "firebase/app";
import "firebase/firestore";
import "firebase/storage";

const firebaseApp = firebase.initializeApp({
  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: ""
});

const db = firebaseApp.firestore();
const storage = firebase.storage();
const ref = storage.ref("03.png");

export { db, storage, Ref };

我的 vue 组件文件

import ref from "@/firebase.js";
import storage from "@/firebase.js";
import db from "@/firebase.js";

export default {
  name: "Home",
  components: {
    CreateCharacter,
  },
  date() {
    return {
      img: "",
    };
  },
  created() {
    console.log(Ref);
    console.log(storage);
    console.log(db);
  },
  methods: {
    handle() {
      Ref.getdownloadURL().then((url) => {
        console.log(url);
      });
    },
  },
};

1 个答案:

答案 0 :(得分:1)

外壳很重要。大写和小写被认为是不同的。 refgetDownloadURL

此外,您的 import 可能需要一些工作。

我认为应该是这样的:

import firebase from "firebase/app";
import "firebase/firestore";
import "firebase/storage";

const firebaseApp = firebase.initializeApp({
  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: ""
});

const db = firebaseApp.firestore();
const storage = firebase.storage();
const ref = storage.ref("03.png");

export { db, storage, ref }; // *** changed, needs to match casing of `const`

还有:

import { db, storage, ref } from "@/firebase.js"; // *** changed, destructure object 
                                                  // *** rather than using multiple imports

export default {
  name: "Home",
  components: {
    CreateCharacter,
  },
  date() {
    return {
      img: "",
    };
  },
  created() {
    console.log(ref); // *** changed, fix casing
    console.log(storage);
    console.log(db);
  },
  methods: {
    handle() {
      ref.getDownloadURL().then((url) => { // *** changed, fix casing
        console.log(url);
      });
    },
  },
};