firebase数据库的滤波设计
我在web应用程序中使用Firebase和AngularFire4。这个模型相对简单,但我很难找到正确的设计方法 我有两个收藏:firebase数据库的滤波设计,firebase,firebase-realtime-database,angularfire2,Firebase,Firebase Realtime Database,Angularfire2,我在web应用程序中使用Firebase和AngularFire4。这个模型相对简单,但我很难找到正确的设计方法 我有两个收藏:地点和国家,如下所示: 位置 "places" : { "-Kjx7NhHnyZNIZbxvzx4" : { "name" : "Dereck beer", "type" : "Bar" "location" : { "cityName" : "Kagoshima", "co
地点
和国家
,如下所示:
位置
"places" : {
"-Kjx7NhHnyZNIZbxvzx4" : {
"name" : "Dereck beer",
"type" : "Bar"
"location" : {
"cityName" : "Kagoshima",
"country" : {
"code" : "JP",
"id" : 110,
"name" : "Japan"
},
"streetName" : "892-0842 Higashisen"
},
"modifiedOn": 121211321321
}
//... More data here...
}
"countries" : {
"110" : {
"code" : "JP",
"id" : 110,
"name" : "Japan"
}
}
国家
"places" : {
"-Kjx7NhHnyZNIZbxvzx4" : {
"name" : "Dereck beer",
"type" : "Bar"
"location" : {
"cityName" : "Kagoshima",
"country" : {
"code" : "JP",
"id" : 110,
"name" : "Japan"
},
"streetName" : "892-0842 Higashisen"
},
"modifiedOn": 121211321321
}
//... More data here...
}
"countries" : {
"110" : {
"code" : "JP",
"id" : 110,
"name" : "Japan"
}
}
目前,在web应用程序中,我显示了位置列表,并且可以导航到每个位置的详细视图。我还可以显示地点所属的国家(我在创建/更新新地点时,在“国家/地区”集合中创建一个新条目(如果尚未存在)
然而,我想通过一些属性来过滤这些地方,比如通过类型。我尝试了以下查询,来自,但不起作用:
constructor(private db: AngularFireDatabase) {
var query = {
orderByChild: 'modifiedOn',
equalTo: {
value: 'Bar',
key: 'type' }
};
this.db.list("/places", query).subscribe( data => {
//All places are returned, and not only the one of type = "Bar"
});
}
如果可能的话,我想避免过度复制我的收藏,只是为了能够查询它们。应该是这样的
var query = {
orderByChild: 'type',
equalTo: 'Bar'
};
orderByChild
和equalTo
是firebase中的一对,它不同于sql查询如果有反对票的原因,那就好了,这样人们就可以避免下一个问题的错误(如果有)。有时,对某些人来说似乎“显而易见”的问题,在直接面对时可能不那么明显,而在开发解决方案时,细节则被简单地“隐藏”。是的。。不加评论地投反对票是不礼貌的,特别是如果询问者的声誉超过1000,我会尝试一下,谢谢。但是,我希望使用:orderByChild:'modifiedOn'执行查询并按creationDate排序。根据angularFire docs的说法,使用可选的键/值属性应该是有效的。嗨,Faruk,我试过了,但仍然得到了全部结果(未过滤),我想在服务器端而不是客户端对数据进行排序。我想我必须在文档中进行更深入的挖掘。