【问题标题】:Angularfire 2 query equalTo objectAngularfire 2查询equalTo对象
【发布时间】:2017-08-25 21:06:12
【问题描述】:

我正在尝试根据一些标签从 firebase 查询中过滤数据

我的数据结构是这样的

  • 项目:

    • 项目ID:
      • 标签:
        • label1:真
        • label2:真

    this.filteredProjects$ = af.database.list(path, { 询问: { orderByChild: '标签', 等于:this.filter$ } });

    filterProjects(filter: string): void { this.filter$.next(!filter ? null : {value: true, key: filter}); }

我尝试使用这个 firebase 功能: 当按子级、值或优先级排序时,Firebase SDK 支持 startAt、endAt 和 equalTo 的可选键参数。您可以使用包含值和键的对象文字来指定键参数。例如:startAt: { value: 'some-value', key: 'some-key' }。

但我收到此错误:ERROR 错误:查询:传递给 startAt()、endAt() 或 equalTo() 的第一个参数不能是对象。

【问题讨论】:

  • 在您的数据库中,labels 一个对象。指定orderByChild 时不能使用它,因为它不是原始值。
  • 那么我应该怎么做才能根据一个或多个标签查询这些项目?

标签: typescript firebase-realtime-database angularfire2


【解决方案1】:

我能够做这样的事情:

af.database.list(path, { query: { orderByChild: 'labels/' + label, equalTo: true } });

label 变量是我要查询的标签名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多