Я делаю кнопку «Мне нравится», которая должна проверить, понравился ли пост пользователю. Попытка сделать что-то вроде этого:
- Проверьте, нравится ли пользователю: установите состояние в true
- Если пользователю не понравилось, состояние остается ложным
- Если пользователь нажимает на лайк, установите значение true и напишите в Firestore
Я пытался использовать массив, но не могу заставить его работать. Есть идеи?
constructor(props){
super(props);
this.state = {
liked: false,
}
}
like = () => {
let user = firebase.auth().currentUser;
let uid;
const usersRef = firestore.collection("tips").doc(this.props.post)
usersRef.then((docSnapshot) => {
if ("likes", "array-contains", user.uid) {
this.setState({
liked: !this.state.liked
})
} else {
usersRef.update({
likes: firebase.firestore.FieldValue.arrayUnion(user.uid)
})
this.setState({
liked: !this.state.liked
})
}
});
}