我一直在使用Firebase云功能,但遇到了麻烦。
我想从我的Firebase实时数据库中检索数据
function get(){
return firebase.database().ref('/state').once('value', (snapshot) => {
return snapshot.val();
});
}
但是问题是当我调用get()时,由于[object Promise]
return firebase.database()...
的内容。
有没有办法只返回snapshot.val()
?
答案 0 :(得分:-1)
JavaScript是异步的。请阅读有关promises and how it works的信息。
您的get()
返回一个诺言,您需要等待它使用then
function get(){
return firebase.database()
.ref('/state')
.once('value',
(snapshot) => {
//This is a arrow function and return is for this callback function passed to once
return snapshot.val();
});
}
您可以在then
内使用use回调函数来获取promise的响应。
//Passing a callback function inside then which will print snapshot value
get().
then(val => console.log(val))
借助ES7,您还可以使用async await
结构来实现承诺。