我正在尝试从数据快照中访问变量:
getEmail() {
var test = firebase.database().ref('/users/' + user).once('value')
.then(function(snapshot) {
var email = snapshot.val().email;
});
console.log(email);
}
console.log没有返回数据库值,我也无法在我的代码中的其他位置访问该电子邮件变量。
答案 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)
}