Я, вероятно, не собираюсь объяснять это хорошо, так как в моей голове беспорядок, но у меня есть список элементов в приложении React, которые я хочу, чтобы люди могли помечать как избранные. Когда этот человек зайдет в свой профиль, он сможет увидеть список предметов, которые ему понравились. Поэтому, когда я ссылаюсь на это, я, по сути, хочу users.currentUser.favorites
.
Я не уверен, как именно добавить «избранное» в качестве дочернего элемента текущего пользователя (прошедшего проверку подлинности с помощью Firebase) или как захватить его и обновить, когда новый элемент «добавлен в избранное».
Структура базы данных, к которой я иду, за исключением того, что я хотел бы, чтобы у пользователя был список "favourPokemon":

Я пытался добавить список к текущему вошедшему в систему пользователю, но когда я пытаюсь указать текущего вошедшего в систему пользователя с помощью var myUserId = firebase.auth().currentUser.uid;
, он говорит, что «currentUser» не определен, поэтому я не уверен, как именно m должен предназначаться для данных для этого пользователя.
Настройка текущего пользователя в моем App.js
componentWillMount() {
let data = jsonData.data.results;
let id = 0;
data.forEach(item => {
id = id + 1;
item.id = id;
});
this.setState({
allPokemonData: data.slice(0, 151),
});
auth.onAuthStateChanged(currentUser => {
this.setState({ currentUser });
});
}
Передача currentUser как реквизита моему компоненту:
render() {
const { allPokemonData, currentUser } = this.state;
return (
<div className="app-wrapper">
<Header currentUser={currentUser} />
<Route
exact
path="/"
component={Home}
/>
<Route
exact
path="/allpokemon"
render={props => <PokemonList allPokemon={allPokemonData} currentUser={currentUser} />}
/>
<Route
exact
path={`/pokemon/:id`}
render={props => <PokemonDetails {...props} allPokemon={allPokemonData} />}
/>
<Route
path="/profile"
render={props => <Profile currentUser={currentUser} />}
/>
</div>
)
}
После этого я пытался установить ссылку в моем компоненте:
if (this.props.currentUser) {
this.usersRef = database.ref('users/' + this.props.currentUser.uid);
}