【发布时间】: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 参数获得的单个项目,那么使用equalTo 和orderByChild 的用例将是什么。
【问题讨论】:
标签: javascript firebase firebase-realtime-database angularfire angularfire2