我正在按角度实现一个系统,该系统进行查询以获取一个星期前的数据,并提供另一个按钮以获取一天前的数据但出现此错误:
未捕获(承诺):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;
}
}