Массив people
, возвращаемый из вашей базы данных, возвращает список людей с первым значением как empty
, поэтому, когда вы попытаетесь получить доступ к this.state.people[0]
, он ничего не найдет и выдаст ошибку.
Кажется, здесь обсуждается , почему коллекции Firebase начинаются с пустой строки.
Однако вы можете внести изменения в firebasePeopleListener
в App.js
и отфильтровать ответ, чтобы добавить в штат только тех людей, у которых установлен id
.
firebasePeopleListener = () => {
database().ref('people/').on('value', (snapshot) => {
let people = snapshot.val();
let updatedPeople = [];
for(let i in people) {
if(people.hasOwnProperty(i) && people[i].id) {
updatedPeople.push(people[i]);
}
}
this.setState({
people: updatedPeople
});
});
};
Это должноисправить вашу проблему сейчас.