首页 > 解决方案 > Vue Firebase:currentUser 为空

问题描述

我是 Vue 和 Firebase 的新手。我正在使用 Firebase 查询根据当前用户电子邮件从 Firebase 数据库中检索一些数据。

这是有效的

source:firebase.database().ref('service').orderByChild('userEmail').equalTo('shakil@gmail.com')

所以在这种情况下,我使用firebase.auth().currentUser.email来使用当前用户电子邮件

但这不起作用

source:firebase.database().ref('service').orderByChild('userEmail').equalTo(firebase.auth().currentUser.email)

它显示这样的错误-> firebase___default.a.auth(...).currentUser is null

这就是我如何将它用于 vuefire

firebase: {
      services: {
        source: firebase.database().ref('service').orderByChild('userEmail').equalTo('marin@gmail.com'),
        readyCallback () {
          this.services.forEach(service => {
            firebase.storage()
              .ref(`service_images/${service.fileName}`)
              .getDownloadURL()
              .then(img => {
                this.$set(this.serviceImages, service['.key'], img)
              })
          })
        }
    }
  },

标签: firebasefirebase-realtime-databasevue.js

解决方案


在 firebase 初始化期间 firebase.auth().currentUser为空。你应该使用

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

作为火力基地的推荐


推荐阅读