Javascript 从firebase数据库检索数据时,浏览器显示“未定义”

Javascript 从firebase数据库检索数据时,浏览器显示“未定义”,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我试图从firebase数据库检索数据。返回的数据如下所示 未定义未定义未定义 我使用的代码是 var query=firebase.database().ref().child(“users/-Ly-dBv9xSiBf-UO0A8Q”).orderByKey(); 查询一次(“值”)。然后(函数(快照){ snapshot.forEach(函数(childSnapshot){ var key=childSnapshot.key; var childData=childSnapshot.val(

我试图从firebase数据库检索数据。返回的数据如下所示

未定义未定义未定义

我使用的代码是

var query=firebase.database().ref().child(“users/-Ly-dBv9xSiBf-UO0A8Q”).orderByKey();
查询一次(“值”)。然后(函数(快照){
snapshot.forEach(函数(childSnapshot){
var key=childSnapshot.key;
var childData=childSnapshot.val().messageText;
书面文件(儿童数据);
});
});

它显示
未定义
,因为首先,引用位于随机ID节点,因此不必循环。其次,数据库中没有名为
messageText
的属性。您的代码应该如下所示:

var query = firebase.database().ref().child("users/-Ly-dBv9xSiBf-UO0A8Q").orderByKey();
query.once("value") .then(function(snapshot) {
      var childData = snapshot.val().password;
      var userId = snapshot.val().user_id;
 document.writeln(childData);
});

我不太了解firebase(与firestore相反),但是
child()
方法上的路径不表示单个文档吗?如果是这样,返回的快照是否会被视为数组(forEach)?还是作为一个医生?如果是后者,那么您应该立即使用
val()
,跳过forEachi要用子密码检索用户id我应该在代码中做什么更改?