【问题标题】:Limiting the firebase equalTo query with the optional key parameter使用可选的 key 参数限制 firebase equalTo 查询
【发布时间】:2017-05-03 15:28:50
【问题描述】:

我有一种感觉,我可能对这个特性的理解是错误的,来自 SQL 背景。文档很少,我找不到一个很好的例子或解释。 我正在寻找 https://github.com/angular/angularfire2/blob/master/docs/4-querying-lists.md 对以下内容的澄清:

1 Firebase SDK 支持 startAt 的可选键参数, endAt 和 equalTo 当按子级、值或优先级排序时。你可以 使用包含 价值和关键。例如: startAt: { value: 'some-value', key: '一些关键' }。

我想限制我的按时间戳排序的查询 (orderByChild),使用此可选键参数将结果限制为仅具有指定值的子键的结果。

this.angularFireDatabase.list('/items', {
  query: {
    orderByChild: 'uploadedOn_',
    equalTo: { key: 'user_uid', value: 'fSXX9twkttYqoS67mcRUmPawIep1' }
  }
});

// JSON 
{
  "items" : {
    "-KijNTXRKV5rjXEA7NdO" : {
      "uploadedOn_" : -1493296081615,
      "user_uid" : "fSXX9twkttYqoS67mcRUmPawIep1"
    },
    "-KijNoB4MivU4Ts6XgUV" : {
      "uploadedOn_" : -1493296169733,
      "user_uid" : "fSXX9twkttYqoS67mcRUmPawIep1"
    },
    "-KijbTMBydwQexbbErlk" : {
      "uploadedOn_" : -1493300012491,
      "user_uid" : "EAsIjLDFPRZDTq97qGQQyS7sBul1"
    }
  }
}

也许,我试图模仿 where SQL 子句,而我应该以不同的方式构建我的数据。 看来这个可选的key参数只能是item自己的key。 在我的示例中,它是常规的自动生成的 Firebase 按键(例如 "-KijNTXRKV5rjXEA7NdO")。 但是在这种情况下,如果结果始终是您可以通过不使用可选的key 参数获得的单个项目,那么使用equalToorderByChild 的用例将是什么。

【问题讨论】:

    标签: javascript firebase firebase-realtime-database angularfire angularfire2


    【解决方案1】:

    如果您执行ref.orderBy("prop").equalTo("value", "key"),它将得到与ref.child("key") 相同的结果。 equalTo() 的第二个参数基本上是无用的(与 startAt()endAt() 不同,它可用于分割范围。

    另见:

    【讨论】:

      猜你喜欢
      • 2016-06-03
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多