我想从 Firebase 实时数据库获取“数据值”。您可以在下面找到我的代码:
async function getName() {
const result = await firebase.database().ref('/users/' + user.user.uid)
.once('value').
then(async function(snapshot) {
console.log("SNapshot =>");
console.log(snapshot.val().displayName); // returns "John Doe"
const result2 = await snapshot.val().displayName;
return result2;
});
return result; // returns "Promise Object"
};
它返回“Promise”。但我想要的是值(value)而不是 promise 。
我应该如何修复我的代码?
谢谢。
最佳答案
您将 async/await 与 then()/catch() 的使用混合在一起。在这种情况下,您应该选择一种语法或另一种语法,而不是同时选择两种语法。您还尝试对不是 promise 的事情使用等待。只需像这样编写您的函数:
async function getName() {
const snapshot = await firebase.database().ref('/users/' + user.user.uid).once('value')
return snapshot.val().displayName
}
并这样调用它:
const name = await getName()
关于javascript - 如何从 Firebase 获取值(value)而不是 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963700/