Redux не загружает массив Firebase - PullRequest
0 голосов
/ 10 января 2019

У меня проблема с загрузкой массива firebase с помощью моих действий. Точно такие же действия работают, когда идентификаторы массива являются целыми числами. Когда я загружаю каждую отдельную заявку на участие в конкурсе, я загружаюсь, используя функциональность Firebase push, которая создает уникальную строку для каждого идентификатора. Например, формат выглядит следующим образом: -L4XONich4cGlqdilzkd. Почему мои действия не проходят через них правильно?

Вот действие по добавлению заявки на один конкурс:

export var startAddCompetitionSubmission = (competitionSubmissionName, competitionSubmissionAuthor, competitionSubmissionPicture) => {
  return (dispatch, getState) => {
    var competitionSubmission = {
      name: competitionSubmissionName,
      author: competitionSubmissionAuthor,
      imgSrc: competitionSubmissionPicture,
      liked: false,
      favorited: false,
      numberOfLikes: 0,
      createdAt: moment().unix()
    }
    var competitionSubmissionRef = firebaseRef.child('competitionSubmissions').push(competitionSubmission);

    return competitionSubmissionRef.then(() => {
      dispatch(addCompetitionSubmission({
        ...competitionSubmission,
        id: competitionSubmissionRef.key
      }));
    });
  }
};

Вот действия по загрузке всех представленных на конкурс заявок:

export var addCompetitionSubmissions = (competitionSubmissions) => {
  return {
    type: 'ADD_COMPETITION_SUBMISSIONS',
    competitionSubmissions
  };
};        

 export var startAddCompetitionSubmissions = () => {
      return (dispatch, getState) => {
        var competitionSubmissionsRef = firebaseRef.child(`competitionSubmissions`);

    return competitionSubmissionsRef.once('value').then((snapshot) => {
      var competitionSubmissions = snapshot.val() || {};
      var parsedCompetitionSubmissions = [];

      Object.keys(competitionSubmissions).forEach((competitionSubmissionId) => {
        parsedCompetitionSubmissions.push({
          id: competitionSubmissionId,
          ...competitionSubmissions[competitionSubmissionId]
        });
      });

      dispatch(addCompetitionSubmissions(parsedCompetitionSubmissions));
    });
  };
};
...