如何在Firebase中访问作为对另一个对象的引用的对象

时间:2018-05-15 12:24:21

标签: reactjs firebase firebase-realtime-database reference

我的Firebase .json看起来像:

"Employees": {
    "Employee1" : {
      "Activities": {
        "Activity1": true
      },
      "age" : 61,
      "name" : "Employee1"
     },
     .
     .
     .
    //other employees
}
"Activities": {
     "Activity1": {
       "name": "Name of Activity1",
       "value": 2,
       "cost": 2
     },
     .
     .
     .
     //other activities
}

我想要做的是显示Employee1。在这种情况下,Employee1在Activities下只有Activity1。我需要显示Employee1数据,包括其活动数据。我正在使用React,我正在使用 firebase.database().ref()on('value', function(snapshot))显示来自Firebase的数据。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

在NoSQL数据建模中,您应该毫不犹豫地复制数据,即以这种方式进行非规范化,使您的查询更容易,更重要,更快。

因此,在您的情况下,您可以按如下方式修改数据结构:

"Employees": {
    "Employee1" : {
      "Activities": {
        "Activity1": {
          "name": "Name of Activity1",  // <- add the details of the activity here
          "value": 2,
          "cost": 2
         },
      },
      "age" : 61,
      "name" : "Employee1"
     },
     .
     .
     .
    //other employees
}
"Activities": {
     "Activity1": {
       "name": "Name of Activity1",
       "value": 2,
       "cost": 2
     },

此技术的一个缺点是您必须保持两个节点同步,但这可以通过update()方法轻松完成,请参阅documentation