Javascript 如何调用具有唯一ID的子级的子级?
我正在尝试使用Firebase实时数据库创建多人游戏大厅。我为主持人制作了Javascript 如何调用具有唯一ID的子级的子级?,javascript,firebase-realtime-database,multiplayer,Javascript,Firebase Realtime Database,Multiplayer,我正在尝试使用Firebase实时数据库创建多人游戏大厅。我为主持人制作了Rooms>UniqueID>UniqueID>player name 我希望客户端看到可用房间的列表,以及创建它的玩家的名称(“xxx的房间”)。它们具有唯一的ID,因为我不想使用身份验证服务。客户端可以从一开始就选择其名称 问题是我无法读取ref,因为唯一ID是一个键: let idr = firebase.database().ref().child('Rooms').push().key; 主机与文件室具有相同
Rooms>UniqueID>UniqueID>player name
我希望客户端看到可用房间的列表,以及创建它的玩家的名称(“xxx的房间”)。它们具有唯一的ID,因为我不想使用身份验证服务。客户端可以从一开始就选择其名称
问题是我无法读取ref,因为唯一ID是一个键:
let idr = firebase.database().ref().child('Rooms').push().key;
主机与文件室具有相同的ID,其他客户端将具有唯一的ID。这不起作用:
var databaseRooms = firebase.database().ref('Rooms/');
var idrref = databaseRooms.child(idr/idr);
idrref.once('value',function(snapshot) {
snapshot.forEach(function(child) {
console.log(child.key+':'+child.val());
});
});
我尝试复制完整的id(-Lfj5cS-1_jlfS7nf_Fb
),它可以工作,但这是一个独特的情况,因此不是我想要的。以下是更多代码,以便于更好地理解:
let databaseRoom = firebase.database().ref('Rooms/');
function appuyerHost() {
let pseudo = document.getElementById("inputpseudo").value;
//Nom entrée par le joueur dans la barre "enter your name"
let idr = firebase.database().ref().child('Rooms').push().key;
//Créé un id spécial pour la room, meme si deux s'apelle pareille c ok
if (pseudo.length < 3) {
document.getElementById("alertpop").style.visibility = "visible"
} else
// Si le pseudo n'est pas de 3 caractères de long min. message d'erreur.
var datar = {
user_name: pseudo
}
// Récupère l'id + le nom.
let updatesr = {};
updatesr['/Rooms/'+ idr +'/' + idr] = datar
firebase.database().ref().update(updatesr);
//envoie les données a la database, la room a l'id du joueur
}
let databaseRoom=firebase.database().ref('Rooms/');
函数appuyerHost(){
让pseudo=document.getElementById(“inputpseudo”).value;
“进入你的名字”
让idr=firebase.database().ref().child('Rooms').push().key;
//这是一个特别的房间,它是一个很好的房间
如果(伪长度<3){
document.getElementById(“alertpop”).style.visibility=“可见”
}否则
//这是一封三克拉长的短信。
var datar={
用户名:pseudo
}
//Récupère l'id+le nom。
让updatesr={};
updatesr['/Rooms/'+idr+'/'+idr]=datar
firebase.database().ref().update(updatesr);
//我们的环境是一个数据库,一个房间
}
请随意建议不同的大厅创建方式。我希望您能解释一下您的理解以及解决方案