После того, как вы прочитаете определенное место из Firebase, полученный снимок данных будет содержать всю информацию в этом месте. Таким образом, нет необходимости выполнять вложенные вызовы API для получения данных из-под /staff-list/i
.
С этими знаниями ваш код может стать:
firebase.database().ref('staff-list').on('value', (snap) => {
snap.forEach((child) => {
this.setState({
staffsBasics: [...this.state.staffsBasics, child.val().basics]
});
}
});
Если вы обнаружите, что вам это регулярно требуется, подумайте об изменении структуры данных, чтобы лучше соответствовать варианту использования, поскольку вы загружаете больше данных, чем необходимо прямо сейчас.
Например, я бы подумал о наличии отдельных списков более высокого уровня (staff-list-basics
, staff-list-details
, et c) с теми же дочерними ключами, а затем загрузка только с этого ключа.