检查文档字段是否存在

时间:2018-09-28 20:13:57

标签: angular typescript ionic-framework google-cloud-firestore

我正在执行一个登录系统,并由用户查询该条目,以验证该条目是否存在于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 :(得分:2)

它应该像遍历结果之前检查结果一样简单:

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())
          }
        }