从 Firebase 下载时承诺卡在待处理状态

时间:2021-07-14 16:51:05

标签: javascript firebase

我有一个格式如下的 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>}。我假设我的语法有问题?

1 个答案:

答案 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));