Попытка иметь уникальный идентификатор номера в firebase, используя реагировать - PullRequest
0 голосов
/ 26 сентября 2018

Я не могу установить значение счетчика для идентификатора последнего вставленного запроса.Вроде пусто?

componentDidMount() {
//Last inserted query
let postRef = firebase.database().ref('clients').orderByKey().limitToLast(1); 
//Fetch the data from the query
postRef.on('value', snapshot => {

  this.setState({ counter: snapshot.child('clients').child('ID').val()});

});


}

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2018

Это должно сработать:

let postRef = firebase.database().ref('clients').orderByKey().limitToLast(1); 
postRef.once('child_added', snapshot => {
  this.setState({ counter: snapshot.child('ID').val()});
});

Изменения, которые я внес в ваш код:

  • Теперь используется once вместо on, потому что я предполагаю, что выне собираюсь получать постоянные обновления.Если вы хотите получать обновления при добавлении / удалении ключей, используйте on.
  • Я слушаю child_added, так как это запускает для правильного дочернего узла.Если вы слушаете value, вам нужно будет перебрать снимок (с помощью snapshot.forEach(), чтобы добраться до дочернего узла.
  • Я удалил child('clients') из вашего кода, поскольку * 1018 нет* узел под каждым ребенком.
...