带有角的firebase Firestore中的几个查询

时间:2018-11-28 02:04:57

标签: javascript firebase google-cloud-firestore angularfire2

我正在按角度实现一个系统,该系统进行查询以获取一个星期前的数据,并提供另一个按钮以获取一天前的数据但出现此错误:

  

未捕获(承诺):FirebaseError:[code = invalid-argument]:无效查询。您只能在NaN上执行等于比较。

这是我的代码

import { Injectable } from '@angular/core';
import { tempFirebaseRepo } from './../Repository/tempFirebase'
import { AngularFirestore, AngularFirestoreCollection } from '@angular/fire/firestore';
import 'rxjs/add/operator/map';

import {Dispositivo} from './../models/Dispositivo';
import {Observable} from 'rxjs';


@Injectable({
providedIn: 'root'
})
export class query {
dispositivoRef:AngularFirestoreCollection<Dispositivo>;
dispositivoRefUno:AngularFirestoreCollection<Dispositivo>;
dispositivoRefDos:AngularFirestoreCollection<Dispositivo>;
dispositivoRefTres:AngularFirestoreCollection<Dispositivo>;
ultimaSemana: Observable<Dispositivo[]>;
ultimoDia: Observable<Dispositivo[]>;

    constructor(private afs:AngularFirestore, private _tempFirebaseRepo:tempFirebaseRepo){}

    getDia(){

        let cadena=this._tempFirebaseRepo.getCadenaFecha(20)

        //aca esta la query de Firestore
        this.dispositivoRef = this.afs.collection('Dispositivo', ref =>{
            return ref.where('timestamp', '>', Number(cadena))
        })
        debugger;
        this.ultimoDia = this.dispositivoRef.valueChanges(); 

        return this.ultimoDia;

    }

    getSemana(){

        let cadena=this._tempFirebaseRepo.getCadenaFecha(7)

        //aca esta la query de Firestore
        this.dispositivoRef = this.afs.collection('Dispositivo', ref =>{
            return ref.where('timestamp', '>', Number(cadena))
        })
        debugger;
        this.ultimaSemana = this.dispositivoRef.valueChanges(); 

        return this.ultimaSemana;

    }

}

然后我在这里调用该方法:

    import { Injectable } from '@angular/core';
import {query} from '../../Repository/query';
import 'rxjs/add/operator/map';

@Injectable({
  providedIn: 'root'
})
export class tempFirebaseService {
  public ultimaSemana;
  public ultimoDia;

  constructor(private _query:query){

    this.ultimaSemana = this._query.getSemana();
    this.ultimoDia = this._query.getDia();   
  }

  //funcion que se invoca en el componente
  /*getUltimaSemana(){
    return this.ultimaSemana;
  }*/

  getUltimoDia(){
    return this.ultimoDia;
}

}

0 个答案:

没有答案