Как удалить документ firestore навсегда? - PullRequest
1 голос
/ 01 августа 2020

Я пытался удалить встречу из плоского списка, но когда getAppointment повторно монтируется, он возвращает все встречи пользователя, включая те, которые должны быть удалены.

Это мой метод getAppointment

 async getAppointment() {
    var snapshot = await db.collection('appointment')
      .orderBy('createdAt', 'desc')
      .get()
    const options = {
      year: 'numeric', month: 'numeric', day: 'numeric',
      hour: 'numeric', minute: 'numeric',
      hour12: false,
    };
    const currentUser = firebase.auth().currentUser.uid;
    const dateFormat = new Intl.DateTimeFormat('en-UK', options);
    const dateList = snapshot.docs.filter((doc) => (
      doc.data().uid === currentUser)).map(doc => {
        const dateObj = new Date(doc.data().date.seconds * 1000);
        const createdAtObj = new Date(doc.data().createdAt.seconds * 1000);
        return {
          key: doc.id,
          date: dateFormat.format(dateObj),
          createdAt: dateFormat.format(createdAtObj),
        }
      });
    this.setState({
      dateItems: dateList,
      loading: false,
    })
  }

И это должно удалить встречу.

onDelete = () => {
    const newDateList = [...this.state.dateItems];
    newDateList.splice(this.state.selectedIndex, 1);

    this.setState({
      dateItems: newDateList,
      loading: false,
    })
    console.log(newDateList);

    this.props.navigation.popToTop();
  }

  deleteDate() {
    db.collection('appointment')
      .doc().delete()
      .then(() => {
        Alert.alert("Appointment deleted!")
      })
      .catch((error) => alert(error));

    this.onDelete();
  }

Значок onPress() запускает функцию deleteDate() в плоском списке.

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