Если / иначе при чтении массива в Firestore - PullRequest
0 голосов
/ 17 сентября 2018

Я делаю кнопку «Мне нравится», которая должна проверить, понравился ли пост пользователю. Попытка сделать что-то вроде этого:

  1. Проверьте, нравится ли пользователю: установите состояние в true
  2. Если пользователю не понравилось, состояние остается ложным
  3. Если пользователь нажимает на лайк, установите значение 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
        })
      }
    });
  }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...