Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用firebase数据库访问函数返回值_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 使用firebase数据库访问函数返回值

Javascript 使用firebase数据库访问函数返回值,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,您好,我正在尝试获取函数返回的值,我在控制台日志中获取它们,但是调用函数时如何访问它们? 功能: function getprofile(useruid) { return firebase.database().ref('users/'+useruid+'/') .once('value') .then(function(bref) { var username= bref.val().username; var provider= br

您好,我正在尝试获取函数返回的值,我在控制台日志中获取它们,但是调用函数时如何访问它们? 功能:

function getprofile(useruid) {
    return firebase.database().ref('users/'+useruid+'/')
    .once('value')
    .then(function(bref) {
        var username= bref.val().username;
        var provider= bref.val().provider;
        var submitedpic=bref.val().profilepic;
        var storageRef = firebase.storage().ref();
        console.log("The current ID is: "+useruid+" and the current username is: "+username+'/provider is: '+provider+'/pic is :'+submitedpic);
    });
}
我这样调用我的函数:

 getprofile(userid);

您必须从
回调返回一个值

function getprofile(useruid) {
    return firebase.database().ref('users/'+useruid+'/')
    .once('value')
    .then(function(bref) {
        var username= bref.val().username;
        var provider= bref.val().provider;
        var submitedpic=bref.val().profilepic;
        var storageRef = firebase.storage().ref();
        console.log("The current ID is: "+useruid+" and the current username is: "+username+'/provider is: '+provider+'/pic is :'+submitedpic);
        // return the values here, in the form of an object
        return {
            useruid: useruid,
            username: username,
            provider: provider,
            submitedpic: submitedpic,
            storageRef: storageRef
        };
        // or simply return the value returned by firebase
        /*
        return bref;
        */
    });
}
.once()
返回一个承诺,因此当您从
getprofile()
获取返回值时,您将得到一个承诺,该承诺将从firebase调用中产生实际结果:

getprofile(userid).then(function(data) {
    // use data here
})

嗨,谢谢你的回答,我怎样才能访问它们呢?我尝试了这个var profile=getprofile(userid);警报(profile.provider);我没有定义。谢谢它像一个符咒(y)有一个伟大的一天!