我是suuuuuper编码的新手,除了这个应用程序之外,我没有任何经验,我是法国人,所以对可能犯的(愚蠢)错误提前感到抱歉。
我正在尝试使用Firebase的实时数据库创建多人游戏大厅。目前,我是这样的:主机的Rooms> UniqueID> UniqueID>玩家名称。
对于客户,我希望他看到可用房间的列表,其中包含创建房间的玩家的名称(“ xxx的房间”)。
它们具有唯一的ID,因为我不想使用身份验证服务, 玩家可以从一开始就选择名字。
![房间] https://imgur.com/a/51c89bT
问题在于,由于une ID是关键,因此我无法读取ref:
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
}
首先感谢您阅读所有这些内容,如果您想了解更多信息,请不要介意我会为您提供任何可以帮助您解决问题的详细信息。
如果您有任何建议要创建一个大厅,我很乐意阅读。 最后的要求是向我解释您为了理解而做了的工作,而不仅仅是回答。 谢谢。