Javascript Nuxt Fire/Firebase Vuex中未定义$fireDb

Javascript Nuxt Fire/Firebase Vuex中未定义$fireDb,javascript,firebase,vue.js,vuex,nuxt.js,Javascript,Firebase,Vue.js,Vuex,Nuxt.js,我正在使用NUXTJS2.9.2构建一个Javascript应用程序。它的特点是通过Nuxt Fire模块与Firebase集成,并使用Vuex处理状态管理和身份验证 我已经建立了项目,我可以创建用户,登录和注销他们 我现在试图在Firebase中设置一些数据和用户ID,并得到一个$fireDb未定义错误,即使用户仍在创建中(没有任何信息集): 我正在试图弄清楚为什么这个.$fireDb没有定义?我试着按照文档进行操作,但这部分好像坏了 您正在尝试访问。这将在createNewAccount()

我正在使用NUXTJS2.9.2构建一个Javascript应用程序。它的特点是通过Nuxt Fire模块与Firebase集成,并使用Vuex处理状态管理和身份验证

我已经建立了项目,我可以创建用户,登录和注销他们

我现在试图在Firebase中设置一些数据和用户ID,并得到一个
$fireDb
未定义错误,即使用户仍在创建中(没有任何信息集):

我正在试图弄清楚为什么
这个.$fireDb
没有定义?我试着按照文档进行操作,但这部分好像坏了


您正在尝试访问。这将在createNewAccount()函数的存储区之外进行

您可以访问存储中的.fireDb、.vue文件和nuxt插件,但不会自动超出该范围

例如,您可以在存储操作中移动函数,如下所示:

导出常量操作={
/*
*创建用户
*/
createUser({commit,dispatch},payload){
这是$fireAuth
.createUserWithEmailAndPassword(payload.email,payload.password)
.then(函数({user}){
提交('localStorage/setUser',{email:payload.email},{root:true})
dispatch('createNewAccount',true)//更改了此
})
.catch(函数(错误){
console.log('注册错误'+错误)
})
},
createNewAccount({commit},用户){
const databaseRef=this.$fireDb.ref(`accounts/${user.uid}`)
返回databaseRef.set({
displayName:'测试显示名称',//使用部分电子邮件作为用户名
电子邮件:“我的测试电子邮件”,
image:'Some image'//为所有用户提供默认配置文件映像
})
}
}
或者运行在应用程序中您可以通过访问nuxt conext的任何其他位置。此

希望有帮助:)

function createNewAccount (user) {
  const databaseRef = this.$fireDb.ref(`accounts/${user.uid}`)
  return databaseRef.set({
    displayName: 'Test Display Name', // use part of the email as a username
    email: 'My Test Email',
    image: 'Some Image' // supply a default profile image for all users
  })
}

export const actions = {

  /*
   * Create a user
   */
  createUser ({commit}, payload) {
    this.$fireAuth.createUserWithEmailAndPassword(payload.email, payload.password).then(function({user}) {
      commit('localStorage/setUser', { email: payload.email }, { root: true })
      createNewAccount(user)
    }).catch(function(error) {
      console.log('error registering' + error)
    });
  }
}