Firebase 9 и useEffect

Как мне сделать так что бы при изменении данных в базе данных на firestore срабатывал useEffect без постоянного цикла enter image description here

С 22 по 26 строку получаю данные с firestore и записываю их в useState на 27 Но когда с помощью input а добавляю новые значения в базу useEffect не срабатывает

введите сюда описание изображения


Ответы (1 шт):

Автор решения: xydope

Вы неправильно используете условное срабатывание. Ваша переменная datee никак не меняется, она всегда равна db (судя по всему, это объект firebase), хуку нет причин выполняться.

Как мне сделать так что бы при изменении данных в базе данных на firestore срабатывал useEffect без постоянного цикла enter image description here

Вам нужно в useEffect подписаться на изменения, в firebase/firestore, для получения обновлений в реальном времени, есть необходимый метод onSnapshot. Используйте в связке с useEffect

useEffect(()=>{
  const unsub = onSnapshot(
  doc(db, "cities", "SF"), 
  (doc) => {
    // что-то сделать, подробности смотрите в документации firebase
  });

  return ()=>unsub()
}, [])
→ Ссылка