Невозможно извлечь данные из firebase и вставить четыре пары ключ: значение в массив как один объект - PullRequest
0 голосов
/ 23 октября 2019

Я записал данные на консоль и получил массив пустых объектов вместо того, чтобы получать значения ключей в соответствии со структурой данных.

Также двенадцать различных объектов были добавлены в массив, поскольку естьтри задачи (идентификаторы задач), и в каждой есть четыре дочерних элемента, следовательно, двенадцать.

Пожалуйста, помогите мне сначала получить данные из 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',
}]

Спасибо.

My data structure:

Код:

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));
      });
  }

My Logs:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...