我想在Firebase中获取路径的值。说我同意
firebaseAuth.onAuthStateChanged(user => {
var displayName =
firebase.database()
.ref('/users/' + user.uid + '/name/')
.once('value').then(snapshot => snapshot.val());
store.dispatch('checkUser', {
user
displayName
});
});
在我的控制台中,我得到一个承诺,即用户
displayName
的价值,在其中我看到了正确的价值,但是我如何实现呢?当我尝试在回调中将displayName设置为snapshot.val()
时,它将抛出错误。我为什么不能这样做?似乎在文档中是可能的。
最佳答案
因为语法不正确而引发该错误。它需要包含在一个块中:
.once('value').then(snapshot => { const displayName = snapshot.val(); });
但是,这不能解决问题。您需要将
dispatch
调用移到回调中-快照已在其中解析:firebaseAuth.onAuthStateChanged(user => {
firebase.database()
.ref('/users/' + user.uid + '/name/')
.once('value').then(snapshot => store.dispatch('checkUser', {
user
displayName: snapshot.val()
}));
});