Javascript 用于检索数据的Firebase用户ID变量

Javascript 用于检索数据的Firebase用户ID变量,javascript,firebase,Javascript,Firebase,使用Firebase,我尝试根据用户id显示用户的配置文件信息。我当前可以使用用户id将数据保存到数据库中 我能够显示嗜好中的一般信息,但当更改变量以显示用户数据时,id为null或uid未定义,我不知道为什么?用户已登录,可以使用其id上载数据 //Display Profile Information (function(){ var user = firebase.auth().currentUser; var uid; if (user != nul

使用Firebase,我尝试根据用户id显示用户的配置文件信息。我当前可以使用用户id将数据保存到数据库中

我能够显示嗜好中的一般信息,但当更改变量以显示用户数据时,id为null或uid未定义,我不知道为什么?用户已登录,可以使用其id上载数据

//Display Profile Information
(function(){                

var user = firebase.auth().currentUser;
var uid;

if (user != null) {
uid = user.uid;  
}


const preObject = document.getElementById('object');
const list = document.getElementById('list');

//Displays Hobbies correctly, When changing 'object' & 'hobbies'
//to 'Users' & uid nothing is shown. 
const dbRefObject = firebase.database().ref().child('object');
const dbRefList = dbRefObject.child('hobbies');

dbRefObject.on('value', snap=> {
    preObject.innerText = JSON.stringify(snap.val(), null, 3);
});

dbRefList.on('child_added', snap => console.log(snap.val()));

};
更改:

const dbRefObject = firebase.database().ref().child('Users');
const dbRefList = dbRefObject.child(uid);

我非常感谢任何帮助或建议

看起来您正在为
dbreObject
获取一个
值,该值指向整个
用户
对象,而不是特定用户的UID

尝试更改此选项:

dbRefObject.on('value', snap=> {
    preObject.innerText = JSON.stringify(snap.val(), null, 3);
});
为此(DBREObject更改为dbRefList):


非常感谢。这很可能会起作用,但当我的uid变量仍以未定义的状态返回时,它就不会起作用了。你知道它为什么这么做吗?用户肯定已登录。抱歉,我错过了!您的代码看起来是正确的。我期望
firebase.auth().currentUser.uid
null
的最可能原因是您在登录调用返回之前进行了调用。尝试将其放入登录回调中,并查看它写入控制台的内容:console.log(firebase.auth().currentUser.uid);
dbRefList.on('value', snap=> {
    preObject.innerText = JSON.stringify(snap.val(), null, 3);
});