Проверка, существует ли поле документа - PullRequest
0 голосов
/ 28 сентября 2018

Я делаю систему входа в систему и запрашиваю запись пользователя, чтобы проверить, существует ли она в firestore, если он находит его входные данные, то я регистрирую его на консоли.До этой части все хорошо, когда он вводит что-то, что существует, это приносит его данные.Однако, когда он вводит что-то, что НЕ существует, он вводит пустой массив «[]», что означает, что такого нет.Моя проблема очень проста, я не могу найти правильную логику для консольного журнала, когда его вход не существует, и это почти все.

Вот мой код

  pageLogin() {
    var auxint = 0;
        this.dataAux
        let auxString = '[';
    var query = firebase.firestore().collection("armazenaTest")
    query.where('Documento.login', '==', this.User.login).get().then(res => {
      res.forEach(item => {
        if (item.exists) {
          auxint++;
          auxString += '{"id":"' + item.id + '","armazenaTest":' + JSON.stringify(item.data()) + '}';
          if(item.get('Documento.login') == this.User.login){
            console.log('Document found!: ', item.data())
          }
        }
        if (res.size != auxint)
          auxString += ', ';
      })
      auxString += ']';
      this.dataJSON = JSON.parse(auxString);
      console.log(this.dataJSON);
    }).catch(err => {
      console.log('An error occured ' + err);
    });

  }

1 Ответ

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

Это должно быть так же просто, как проверить свой результат перед его повторением:

query.where('Documento.login', '==', this.User.login).get().then(res => {
      if (res.length < 1) {
         console.log('no results!');
         //probably break or return here
      }
      res.forEach(item => {
        if (item.exists) {
          auxint++;
          auxString += '{"id":"' + item.id + '","armazenaTest":' + JSON.stringify(item.data()) + '}';
          if(item.get('Documento.login') == this.User.login){
            console.log('Document found!: ', item.data())
          }
        }
...