Я записал данные на консоль и получил массив пустых объектов вместо того, чтобы получать значения ключей в соответствии со структурой данных.
Также двенадцать различных объектов были добавлены в массив, поскольку естьтри задачи (идентификаторы задач), и в каждой есть четыре дочерних элемента, следовательно, двенадцать.
Пожалуйста, помогите мне сначала получить данные из firebase, а затем выдвинуть эти данные как один объект (то есть все четыре пары ключ: значение)в одном) в массив? Вот так:
tempTasks = [{
key: taskID,
title: 'Task1',
description: 'nothing much to do',
dueTime: 'the time string',
dueDate: 'the date',
},
{
key: taskID,
title: 'Task2',
description: 'nothing much to do here too',
dueTime: 'the time string',
dueDate: 'the date',
}]
Спасибо.
Код:
class TasksScreen extends Component {
constructor(props) {
super(props);
this.state = {
tasks: [],
};
var tempTasks = [];
var that = this;
var taskRef = database()
.ref('/Tasks/' + auth().currentUser.uid)
.on('value', dataSnapshot => {
var key = dataSnapshot.key;
console.log('UID KEY: ' + key);
dataSnapshot.forEach(childSnaps => {
var key = childSnaps.key;
console.log('TASKID KEY: ' + key);
childSnaps.forEach(taskData => {
var taskKey = taskData.key;
var taskVal = taskData.val();
console.log('taskData KEY: ' + taskKey);
console.log('taskData VAL: ' + taskVal);
tempTasks.push({
taskTitle: taskData.val().title,
taskDescription: taskData.val().description,
taskDueTime: taskData.val().dueTime,
taskDuedate: taskData.val().dueDate,
});
});
});
console.log('tempTasks: ' + JSON.stringify(tempTasks));
that.setState({tasks: tempTasks});
console.log('STATE TASKS: ' + JSON.stringify(that.state.tasks));
});
}