使用可选的键参数限制 firebase equalTo 查询

Limiting the firebase equalTo query with the optional key parameter

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

1 The Firebase SDK supports an optional key parameter for startAt, endAt, and equalTo when ordering by child, value, or priority. You can specify the key parameter using an object literal that contains the value and the key. For example: startAt: { value: 'some-value', key: 'some-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 参数.

如果你这样做 ref.orderBy("prop").equalTo("value", "key"),它会给出与 ref.child("key") 相同的结果。 equalTo() 的第二个参数本质上是无用的(不像 startAt()endAt(),它可以用来分割范围。

另见: