我有两个“表”,分别是USER和CONGE。在表“ CONGE”中,插入了用户的ID。但是,我不知道如何根据其ID显示用户的假期。
我想根据ID发布“Congé”。
{
"conge" : {
"-LaW8hzv8O3PSlZk6OPIJU" : {
"Mouth" : "January",
"id_user" : "LaW_9iIrm_-tiDpWEE7"
}
},
"user" : {
"-LaW_9iIrm_-tiDpWEE7" : {
"email" : "asdfasdf",
"name" : "Michel",
"prenom" : "adadfas"
},
"-LaWfQpaRfludVkzAPvq" : {
"email" : "dup@gmail",
"name" : "Michel",
"prenom" : "dupuis"
},
"-LaWfTTF-Lifs79bGbhy" : {
"email" : "JC@gmail",
"name" : "Jean ",
"prenom" : "Louzis"
}
}
}
`
var rootRef = firebase.database().ref().child("user");
rootRef.on("child_added",function(snap){
var name = snap.child("name").val();
var email = snap.child("email").val();
var prenom = snap.child("prenom").val();
$("#table_body").append("<tr><td>"+name+"</td><td>"+prenom+"</td><td>"+email+"</td></tr>");
// $("#table_body").append("<tr><td>"+name+"</td><td>"+email+"</td><td><button id='rem' onclick='remove()'>Remove</button></td></tr>");
});
function remove(){
// console.log(firebase.database().ref().child('user').push().key);
rootRef.remove();
location.reload();
}
function add(){
console.log(name);
alert("COOL");
}`
最佳答案
在NoSQL世界中,复制数据以轻松编写查询是很常见的(在Web上您会发现很多关于此主题的“文献”)。
使用当前的数据库结构,您将需要发出两个查询才能获取所需的数据。
如果按以下方式复制数据,则将通过一个查询获取信息:
{
"conge" : {
"-LaW8hzv8O3PSlZk6OPIJU" : {
"Mouth" : "January",
"id_user" : "LaW_9iIrm_-tiDpWEE7"
}
},
"user" : {
"-LaW_9iIrm_-tiDpWEE7" : {
"email" : "asdfasdf",
"name" : "Michel",
"prenom" : "adadfas",
"conges" : {
"January" : true,
"April" : true
}
},
"-LaWfQpaRfludVkzAPvq" : {
"email" : "dup@gmail",
"name" : "Michel",
"prenom" : "dupuis",
"conges" : {
"March" : true,
"April" : true,
"October" : true
}
},
"-LaWfTTF-Lifs79bGbhy" : {
"email" : "JC@gmail",
"name" : "Jean ",
"prenom" : "Louzis"
}
}
}
此方法的唯一缺点是必须使两个节点(即
conge
和user
)保持同步。但这可以通过使用update()方法同时写入两个数据库节点来轻松完成,如下所示:https://firebase.google.com/docs/database/web/read-and-write#update_specific_fields关于javascript - 加入Firebase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55287302/