Я хочу отслеживать событие из базы данных в реальном времени или могу отложить функцию в Js - PullRequest
0 голосов
/ 05 февраля 2019

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

Но если я обновлю новое значение или что-то еще, оно снова будет работать.

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

Мой исходный код выглядит так.(Я пытаюсь работать в React)

class QueWait extends Component {
    constructor(props){
        super(props);
        this.state  = {
            ques: []
        };
        let app = this.props.db.database().ref('StockQ/1');
        app.on('value', snapshot => {
            this.getData(snapshot.val());
        });
    }

    getData(val) {

        let queValue =val;
        this.setState({
            ques: queValue
        });

        window.responsiveVoice.speak("Number" + queValue +"line up 
please.", "US English Female");

    }

Моя структура базы данных.(Пожарная база)

  "Qnum" : 20,
  "StockQ" : {
  "1" : 15,
  "2" : 10,
  "Show" : 13,
  "stock" : 16
  }
...