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.