如何称呼具有唯一ID的孩子的孩子

时间:2019-05-25 15:34:21

标签: javascript firebase-realtime-database multiplayer

我是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
}

首先感谢您阅读所有这些内容,如果您想了解更多信息,请不要介意我会为您提供任何可以帮助您解决问题的详细信息。

如果您有任何建议要创建一个大厅,我很乐意阅读。 最后的要求是向我解释您为了理解而做了的工作,而不仅仅是回答。 谢谢。

0 个答案:

没有答案