javascript - 如何调用具有唯一 ID 的孩子的孩子?
问题描述
我正在尝试使用 Firebase 实时数据库制作多人游戏大厅。我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
}
随意建议不同的大厅创建方式。除了解决方案之外,我希望您能解释一下您的理解。
解决方案
推荐阅读
- python - python - 如何使用openCV在Python图像处理中检测除特定颜色以外的多种颜色?
- java - 复制一个对象来存储旧值会更好吗?
- angular - 角度更新从 5 到 6 个错误
- javascript - 子元素点击也触发父元素 - Reactjs
- php - phpunit:在初始设置后重新定义模拟的行为
- visual-studio - 在调试 Web 项目的 VS 2017(15.7.0) 中启动浏览器的新实例,在现有的打开新选项卡中插入
- php - 如何从 $_FILE[] 中删除特定图像?
- java - 泽西过滤器不提供标题值
- linq - 满足条件时增加一个值,否则设置为零
- java - 如何使用 Appium 自动化 iOS 应用程序中的单选按钮?