我有一个格式如下的 firebase 数据库(其中随机数/字母是用户的 uid):
profile
kLZwdaWYEdAJ3cPk
user_dict
questions
category
some other words
another category
some more words
user_dict 是一个存储他们的个人资料信息的对象,我需要在应用程序继续之前下载该信息。
这是我用来检索它的代码:
function getUserDict() {
let current_user_id = firebase.auth().currentUser.uid
return firebase.database().ref().child('profile').child(current_user_id).child('user_dict').once('value').then(function (snapshot) {
return snapshot.val()
})
}
在此函数之后,我立即调用 console.log('userLogin user_dict is', user_dict)
,当应用程序挂起时,它的值为 Promise {<pending>}
。我假设我的语法有问题?
答案 0 :(得分:1)
您的函数返回一个 Promise
,您需要await
它或使用 then
类似于您在方法本身中的做法
(async function test(){
const user_dict = await getUserDict();
console.log('userLogin user_dict is', user_dict);
})();
或
getUserDict().then(user_dict => console.log('userLogin user_dict is', user_dict));