无法阅读财产' ref'未定义的

时间:2017-11-12 21:02:12

标签: javascript firebase vue.js vuejs2 vuefire

我正在使用Vue + Firebase + Vuefire构建一个简单的Web应用程序,我得到" Uncaught TypeError:无法读取属性' ref'当我尝试在组件中使用我的Firebase数据库变量时,未定义"

在main.js

Vue.use(VueFire)

const firebaseApp = Firebase.initializeApp({ //setting })

// Export the database for components to use.
export const db = firebaseApp.database()

在我的组件中

// in Recipes.vue
import {db} from '../main.js'

export default {
  recipe: {
    source: db.ref('recipes')
    // Console says: "Uncaught TypeError: Cannot read property 'ref' of undefined"
  }
}

我按照本教程https://alligator.io/vuejs/vuefire-firebase/

中的步骤进行操作

如果在main.js中使用,此代码db.ref('recipes')可以正常工作,但是一旦我在组件中导入它,它就无法工作。

2 个答案:

答案 0 :(得分:1)

问题是我的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内无效?我不确定,也许更有知识的人可以回答这个问题。

答案 1 :(得分:0)

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

import Firebase from 'firebase'

import * from 'firebase'