проблема с извлечением данных из firebase после обновления базы данных в реакции js - PullRequest
0 голосов
/ 14 февраля 2020

здесь моя БД пишет правильно и извлекает эти данные в сеть, но как только в БД происходит обновление, обновленные данные не отображаются в сети .. старые данные по-прежнему отображаются .. но как только я обновлю sh На странице обновленных значений показана любая идея, чтобы решить эту проблему?

это мой код извлечения данных

componentDidMount() {
    this.authListener();
    this.retrieveData();

    console.log("Data loaded");
  }
retrieveData = () => {
    fire.auth().onAuthStateChanged(user => {
      if (user) {
        var ref = fire
          .database()
          .ref("data")
          .limitToLast(1);
        //takes the last data in DB

        var userUID = fire.auth().currentUser.uid;
        var query = ref.orderByChild("ID").equalTo(userUID); //retrieves data about only the current logged in user
        console.log(userUID);
        query.once("value", snapshot => {
          let currentState = this.state.people;

          const currentUser = snapshot.val();
          for (let i in currentUser) {
            currentState.push({
              email: currentUser[i].UserEmail,
              UserAnswer: currentUser[i].UserAnswer,
              Questions: currentUser[i].Question,
              id: currentUser[i].ID,
              Score: currentUser[i].Score,
              levelRook: currentUser[i].UserLevel,
              levelStudent: currentUser[i].UserLevelStudent,
              levelIntermediate: currentUser[i].UserLevelIntermediate,
              levelExpert: currentUser[i].UserLevelExpert,
              levelMaster: currentUser[i].UserLevelMaster,
              rank: currentUser[i].RankValue
            });
          }

          // currentState.push(user);
          console.log(currentState);
          this.rankData(); //setting rank value from DB

          this.setState({
            people: currentState,
            dataHasLoaded: true
          });
        });
      } else {
        console.log("no user");
      }
    });
  };

проблема в том, что при обновлении значений в БД вышеупомянутая функция больше не вызывается чтобы получить последние данные ... любая помощь по этому поводу?

1 Ответ

1 голос
/ 14 февраля 2020

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

Документация: https://firebase.google.com/docs/functions/database-events

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