0

實際上,我想全局使用當前登錄到門戶的用戶的數據。 以下是我寫的代碼。firebase:無法對用戶授權數據未定義,但uid正在正確檢索Node.js

在創建用戶後,我已經將userdata保存到firebase數據庫,如下所示!

firebase.auth().createUserWithEmailAndPassword(email,password).then(function(userData) 
    { 
    console.log("Successfully Created user with uid:",userData.uid); 
     var user ={ 
     uid:userData.uid, 
     email:email, 
     first_name:first_name, 
     last_name:last_name, 
     location:location, 
     fav_genres:fav_genres, 
     fav_artists:fav_artists 
     } 
     var userRef =fbRef.child('users'); 
     userRef.push().set(user); 
    req.flash('success_msg','you are registered now, You can login'); 
    res.redirect('/users/login'); 
    }).catch(function(error) 
    { 
    res.write 
    ({ 
     code: error.code 
    }); 
    res.status(401).end(); 
    }); 
} 
}); 

現在我想檢索和使用我的應用程序中的所有頁面全局地currenly登錄userdata。

一些部分app.js是以下的

app.get('*',function(req,res,next){ 
    if(firebase.auth().currentUser!=null) 
    res.locals.user = firebase.auth().currentUser; 
}); 

用戶從火力的節點。 enter image description here

但我沒有得到用戶對象,只能得到當前用戶的uid。請在此建議我。

回答

0

我可以找出問題所在,使用orderByChild()函數如下所示。

app.get('*',function(req,res,next){ 

    if(firebase.auth().currentUser!=null){ 
    var id = firebase.auth().currentUser.uid; 
    var profileRef = fbRef.child('users'); 
    // order by uid and then find the specific uid 
    var query = profileRef.orderByChild('uid').equalTo(id); 
    // Do a one time read of that uid 
    query.once('value', function(snap){ 
    var user = JSON.stringify(snap.val()); 
    console.log('User data is: '+user); 
    res.locals.user = JSON.stringify(snap.val()); 
}); 
} 
next(); 
}); 
相關問題