Необработанный отказ (FirebaseError): нет документа для обновления - PullRequest
0 голосов
/ 05 февраля 2020

Я все еще очень плохо знаком с программированием, так что терпите меня! Я прошел курс на YouTube, чтобы создать приложение для заметок и получить основу для работы, но теперь я получаю эту ошибку в случайное время при удалении заметок в Firebase, надеясь, что кто-то сможет увидеть, что здесь готовится!

"Необработанное отклонение (FirebaseError): нет документа для обновления: projects / speakle-dc94b / database / (по умолчанию) / Documents / notes / GdWPrQNxR3Z9TFMWmqOZ"

И это ссылается на модули узлов следующим образом : снимок экрана с ошибкой в ​​chrome

Код, который у меня есть, который взаимодействует с firebase, выглядит следующим образом:

Любые отзывы очень приветствуются!

componentDidMount = () => {
    firebase
      .firestore()
      .collection('notes')
      .onSnapshot(serverUpdate => {
        const notes = serverUpdate.docs.map(_doc => {
          const data = _doc.data();
          data['id'] = _doc.id;
          return data;
        });
        console.log(notes);
        this.setState({ notes: notes });
      });
  }

  selectNote = (note, index) => this.setState({ selectedNoteIndex: index, selectedNote: note });

  noteUpdate = (id, noteObj) => {
    firebase
      .firestore()
      .collection('notes')
      .doc(id)
      .update({
        title: noteObj.title,
        body: noteObj.body,
        timestamp: firebase.firestore.FieldValue.serverTimestamp()
      });
  }

  newNote = async (title) => {
    const note = {
      title: title,
      body: ''
    };
    const newFromDB = await firebase 
      .firestore()
      .collection('notes')  
      .add({
        title: note.title,
        body: note.body,
        timestamp: firebase.firestore.FieldValue.serverTimestamp()
      });
    const newID = newFromDB.id;
    await this.setState({ notes: [...this.state.notes, note] });
    const newNoteIndex = this.state.notes.indexOf(this.state.notes.filter(_note => _note.id === newID)[0]);
    this.setState({ selectedNote: this.state.notes[newNoteIndex], selectedNoteIndex: newNoteIndex });
  }

  deleteNote = async (note) => {
    const noteIndex = this.state.notes.indexOf(note);
    await this.setState({ notes: this.state.notes.filter(_note => _note !== note) })
    if(this.state.selectedNoteIndex === noteIndex) {
      this.setState({ selectedNoteIndex: null, selectedNote: null});
    } else {
      this.state.notes.lenght > 1 ? 
      this.selectNote(this.state.notes[this.state.selectedNoteIndex - 1], this.state.selectedNoteIndex - 1) : 
      this.setState({ selectedNoteIndex: null, selectedNote: null });
    }

    firebase 
      .firestore()
      .collection('notes')
      .doc(note.id)
      .delete()
      .then(function() {
        console.log("Document successfully deleted!");
    }).catch(function(error) {
        console.error("Error removing document: ", error);
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...