Javascript 无法读取属性';参考';未定义的

Javascript 无法读取属性';参考';未定义的,javascript,firebase,vue.js,vuejs2,vuefire,Javascript,Firebase,Vue.js,Vuejs2,Vuefire,我正在用Vue+Firebase+Vuefire构建一个简单的web应用程序,当我尝试在组件中使用Firebase db变量时,我得到了“未捕获类型错误:无法读取未定义的属性'ref'” 在main.js中 在我的组件中 我遵循了本教程中的步骤 如果在main.js中使用,此代码db.ref('recipes')可以工作,但一旦我将其导入到组件中,它就不会工作。.ref是firebase函数,您需要导入它。试一试 import Firebase from 'firebase' 或 问题是我的F

我正在用Vue+Firebase+Vuefire构建一个简单的web应用程序,当我尝试在组件中使用Firebase db变量时,我得到了“未捕获类型错误:无法读取未定义的属性'ref'”

在main.js中 在我的组件中 我遵循了本教程中的步骤


如果在main.js中使用,此代码
db.ref('recipes')
可以工作,但一旦我将其导入到组件中,它就不会工作。

.ref
是firebase函数,您需要导入它。试一试

import Firebase from 'firebase'


问题是我的Firebase代码(包括db变量)在
main.js
中,但它需要在它自己的组件中。我创建了一个
firebase.js
文件:

import Firebase from 'firebase'

const firebaseApp = Firebase.initializeApp({
  # configuration
})

// Export the database for components to use.
export const db = firebaseApp.database()
然后在我的组件中,我只导入了我的数据库变量:

import {db} from '../firebase'

为什么它不能在
main.js中工作?我不确定,也许有更有知识的人可以回答这个问题。

我看到您的代码和教程之间的直接区别是,您在导入时包含了
.js
扩展。也许您应该试着省略它,而是从“../main”
使用
import{db}。当然,我从来没有使用过导入或导出,所以我不能说这是否能解决您的问题。很好的观察。我从来没有注意到没有.js扩展它就可以工作。我试了一下,路径仍然有效,但我有同样的错误。谢谢你的帮助,我终于找到了答案。我在另一个答案中发布了解决方案。参见
import * from 'firebase'
import Firebase from 'firebase'

const firebaseApp = Firebase.initializeApp({
  # configuration
})

// Export the database for components to use.
export const db = firebaseApp.database()
import {db} from '../firebase'