Как перезагрузить страницу после выполнения запроса на удаление Firebase

У меня есть метод, который отправляет запрос на удаление в мою коллекцию Firebase. Я хочу, чтобы страница перезагружалась после того, как запрос на удаление прошел, и документ был удален. Как и сейчас, страница перезагружается немедленно, и документ не удаляется, но он работает нормально, если я удаляю часть кода перезагрузки.

async deletePost() {
  database.collection("posts").where("id", "==", this.id).get().then(data => {
    data.forEach(doc => {
      doc.ref.delete()
    })
  }).then(() => {
    M.toast({
      classes: "toast-alert",
      html: "Post deleted"
    })
  }).then(
    window.location.reload()
  )
}

Попробуйте реализовать doc.ref.delete().then(window.location.reload())

M.El Yaakoubi 09.04.2022 20:32
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
0
1
12
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Каждый вызов delete() является асинхронным, поэтому вам нужно выполнить все из них. Решение для этого состоит в том, чтобы использовать Promise.all для возвращаемых значений, которые вы получаете от delete():

async deletePost() {
  return database.collection("posts").where("id", "==", this.id).get().then(data => {
    const promises = data.docs.map(doc => doc.ref.delete());
    return Promise.all(promises);
  }).then(() => {
    window.location.reload()
  )
}

Другие вопросы по теме