【问题标题】:how can i make query in angular with firebase firestore?我如何使用firebase firestore进行角度查询?
【发布时间】:2019-04-26 12:13:07
【问题描述】:

我正在尝试使用 firebase firestore 在 angular 6 中进行查询,我有这个代码,我已经下载了包“npm firebase @angularfire”但不起作用:

    import { Component } from '@angular/core';
    import { AngularFirestore, AngularFirestoreCollection } from 
    '@angular/fire/firestore';
    import {Lesson} from './models/lesson.model'
    import { Observable} from 'rxjs';
    import {BehaviorSubject} from 'rxjs/BehaviorSubject';
    import {switchMap} from 'rxjs/operators'; 
    import * as moment from 'moment';

    @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {

      lessonRef:AngularFirestoreCollection<Lesson>;
      lesson$: Observable<Lesson[]>;
      endDate$: BehaviorSubject<Date>;

      constructor(afs:AngularFirestore){
        this.endDate$ = new BehaviorSubject(new Date('2017-12-24'));

        this.lesson$= this.endDate$.pipe(
          switchMap(date=>
          afs.collection<Lesson>('Lesson', ref => 
          ref.where('endDate', "==", date))
          .valueChanges(),
          ),
        );

      }

【问题讨论】:

  • 您共享的代码有什么问题?

标签: angular typescript firebase google-cloud-firestore angularfire2


【解决方案1】:

您没有在任何地方定义ref。正如AngularFire documentation 所说:

查询是在firebase.firestore.CollectionReference 的基础上创建的。

您需要定义一个CollectionReference,如Firestore documentation 所示:

let ref = firebase.firestore().collection("Lessons");

然后你可以定义一个AngularFire2集合,在上面使用你已经拥有的代码进行查询。

【讨论】:

  • 但是我必须在哪里输入呢?
  • 在你第一次使用ref之前,例如在 ` this.lesson$= this.endDate$.pipe(`
猜你喜欢
  • 2020-06-12
  • 1970-01-01
  • 2018-03-28
  • 2021-10-24
  • 2021-07-29
  • 2019-07-06
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
相关资源
最近更新 更多