在Firestore上过滤时间戳查询

时间:2018-09-16 16:57:12

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

我正在尝试从离子的Firebase过滤时间戳。我想做的是,我想过滤所有未经过今天的时间戳,即时间表。基本上,如果计划已经完成,我想从Firestore检索它。如果它仍然计划,那么我不需要检索它。我的问题是我根本无法获得任何时间戳。 为了做到这一点,我正在我的构造函数内进行查询。在这里。

myDate: String = new Date().toISOString();



    constructor(public navCtrl: NavController, public formBuilder: FormBuilder) {
                let db = firebase.firestore();
                var auxint = 0;
                this.dataAux
                let auxString = '[';
                db.collection('Usuario').where("Deletado", "==", false).where('DataCriacao', '<', this.myDate).get().then(res => {
                  res.forEach(item => {

                    auxint++;
                    auxString += '{"id":"' + item.id + '","Usuario":' + JSON.stringify(item.data()) + '}';

                    if (res.size != auxint)
                      auxString += ', ';
                  })
                  auxString += ']';
                  this.dataJSON = JSON.parse(auxString);

                  console.log(this.dataJSON);
                }).catch(err => {
                  console.log('algum erro ' + err);
                });

        }

我如何显示Firestore数据

  <ion-item-sliding *ngFor="let data of dataJSON">
      <ion-item>
    <h3>DataCriacao: {{data?.DataCriacao}}</h3>
    <p>DataUpdate: {{data?.DataUpdate}}</p>
    <p>DELETADO: {{data?.Deletado}}</p>
    <p>EMAIL: {{data?.Usuario?.Documento?.email}}</p>
    <p>ID: {{data.Usuario.Documento?.id}}</p>
    <p>NOME: {{data.Usuario.Documento?.nome}}</p>
    <p>SENHA: {{data.Usuario.Documento?.senha}}</p>
    <p>TELEFONE: {{data?.Usuario?.Documento?.telefone}}</p>
      </ion-item>
      <ion-item-options>

1 个答案:

答案 0 :(得分:1)

  

我注意到我的屏幕正在打印出一个空的[]数组类型。

这是因为您正在使用>比较String和Timestamp数据。这不是有效的比较,因此不会从集合中检索任何文档,从而为您提供空数组。

相反,您必须将两种数据类型保持相同。您应该仅以“日期”格式保留当前日期。从Firestore返回的时间戳记也采用日期格式。

myDate: String = new Date();

因此,现在您可以使用where查询比较它们。