Как я могу получить доступ к объекту, который является ссылкой на другой объект в Firebase - PullRequest
0 голосов
/ 15 мая 2018

Мой 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 имеет только Activity1 в разделе Activity.Мне нужно отобразить данные Employee1, включая данные о его деятельности.Я работаю с React и использую firebase.database().ref() и on('value', function(snapshot)) для отображения данных из Firebase.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 мая 2018

При моделировании данных 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(), см. Документацию

...