简体   繁体   中英

How do I get the child to inside a parent child on Firebase?

I am trying to put my data nested by user has a project has a task. I can't seem to get it inside the key.

Basically I wanted it to be like -

在此处输入图片说明

But my outcome is coming up as -

在此处输入图片说明

My JavaScript

<script>

    var database = firebase.database();

    var userRef = database.ref('/user');
    var projectRef = database.ref('/user/project');
    var taskRef = database.ref('/user/project/task');

    var userDisplay = userRef.push({
        username: 'userA',
        firstname: 'John',
        lastname: 'Smith'
        });

    var projectDisplay = projectRef.push({
        projectname: 'Project Test 1',
        projectdate: '12th December 2019'
        });

    var taskDisplay = taskRef.push({
        taskname: 'Task 1',
        taskdate: '12th December 2019',
        taskdetail: 'Task Testing'
    });

    console.log("Running...");

    document.getElementById('test').innerHTML= userDisplay + ' ' + projectDisplay + ' ' + taskDisplay;  

</script>

One solution is to use the update() method, as follows:

  var newUserKey = firebase
    .database()
    .ref()
    .child('user')
    .push().key;

  var newProjectKey = firebase
    .database()
    .ref()
    .child('user/' + newUserKey)
    .push().key;

  var newTaskKey = firebase
    .database()
    .ref()
    .child('user/' + newUserKey + '/' + newProjectKey)
    .push().key;

  var updates = {};

  updates['/user/' + newUserKey] = {
    username: 'userA',
    firstname: 'John',
    lastname: 'Smith'
  };

  var project = {};
  project[newProjectKey] = {
    projectname: 'Project Test 1',
    projectdate: '12th December 2019'
  };
  updates['/user/' + newUserKey]['project'] = project;

  var task = {};
  task[newTaskKey] = {
    taskname: 'Task 1',
    taskdate: '12th December 2019',
    taskdetail: 'Task Testing'
  };

  updates['/user/' + newUserKey]['project'][newProjectKey]['task'] = task;

  firebase
    .database()
    .ref()
    .update(updates);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM