У меня проблема с загрузкой массива 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));
});
};
};