Javascript 加入Firebase

Javascript 加入Firebase,javascript,firebase,join,firebase-realtime-database,Javascript,Firebase,Join,Firebase Realtime Database,我有两个“表”,分别是USER和CONGE。在表“CONGE”中,我插入了用户的id。但是,我不知道如何根据用户的id显示其休假 我想根据id发布“Congé” { "conge" : { "-LaW8hzv8O3PSlZk6OPIJU" : { "Mouth" : "January", "id_user" : "LaW_9iIrm_-tiDpWEE7" } }, "user" : { "-LaW_9iIrm_-tiDpWEE7" :

我有两个“表”,分别是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(“用户”);
rootRef.on(“添加了子项”),函数(snap){
var name=snap.child(“name”).val();
var email=snap.child(“email”).val();
var prenom=snap.child(“prenom”).val();
$(“#表体”)。追加(“+name+”“+prenom+”“+email+”);
//$(“#表体”)。追加(“+name+”+email+“Remove”);
});
函数删除(){
//console.log(firebase.database().ref().child('user').push().key);
rootRef.remove();
location.reload();
}
函数add(){
console.log(名称);
警惕(“冷静”);
}`

在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()方法:

Migo,您能帮助我们将图像中的Javascript代码添加到问题中吗??此外,数据库数据可以导出为JSON,您也可以将其粘贴到问题中。这将是我们很容易复制粘贴代码,并找到您的问题!!是的,您可以复制粘贴到目前为止尝试的代码(Javascript、HTML),并通过编辑将其添加到问题中。还可以将实时数据库中的数据导出为JSON格式@migo Hi,你有时间看看提议的解决方案吗?
{
  "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"
    }
  }
}