Firebase Javascript,如何使用ref函数内部的变量?

时间:2017-06-06 23:51:27

标签: javascript firebase firebase-realtime-database

我正在尝试从数据快照中访问变量:

  getEmail() {
    var test = firebase.database().ref('/users/' + user).once('value')
    .then(function(snapshot) {
        var email = snapshot.val().email;
        });
        console.log(email);
    }

console.log没有返回数据库值,我也无法在我的代码中的其他位置访问该电子邮件变量。

2 个答案:

答案 0 :(得分:0)

有两种可能的解决方案:(两者均由Sterling在评论中提及)

1)日志语句不在.then方法的范围内:



getEmail () {
  var test = firebase.database().ref('/users/' + user).once('value')
    .then(function (snapshot) {
      var email = snapshot.val().email
      console.log(email)
    })
}




2。)您可以在email方法中返回.then变量并记录test变量:



getEmail () {
  var test = firebase.database().ref('/users/' + user).once('value')
    .then(function (snapshot) {
      var email = snapshot.val().email
      return email
    })
  console.log(test)
}




**)最清楚的方式IMO是这样的:



getEmail () {
  var email = firebase.database().ref('/users/' + user).once('value')
    .then(function (snapshot) {
      return snapshot.val().email
    })
  console.log(email)
}




答案 1 :(得分:-2)

getEmail () {
  var email = firebase.database().ref('/users/' + user).once('value')
    .then(function (snapshot) {
      return snapshot.val().email
    })
  console.log(email)
}