AngularFire2 查询 multi-value
AngularFire2 querying by multi-value
我是 Firebase 的新手,在执行任何简单的数据库操作时遇到很多问题。
我需要使用更多属性过滤一组数据。这是我的 Firebase 实时数据库:
"items" : {
"-KuJdzzI82tnp1etnR0E:" : {
"dateEnd" : 1506356341284,
"dateStart" : 1505751541284,
"enabled" : 0,
"title" : "cat"
},
"-KuKeCwPtkH_Ub9YMq4C:" : {
"dateEnd" : 1505665110444,
"dateStart" : 1505146710444,
"enabled" : 1,
"title" : "wolf"
},
"-KuKeD1evhc4mw2njQqV:" : {
"dateEnd" : 1506961268244,
"dateStart" : 1506442868244,
"enabled" : 0,
"title" : "fish"
}
}
如果时间戳在 dateStart 和 dateEnd 之间并且启用了 ="1".
,我必须提取标题为 "wolf" 的元素
我在 AngularFire2 文档中读到可以查询列表,但唯一的例子是具有 "orderByChild" 和 "equalTo" 组合的单个过滤器属性。
是否可以使用 AngularFire2 来解决这个问题?
谢谢。
您不能向同一个查询添加两个过滤器。您需要对预期的较小数据集进行查询,然后筛选出结果。
const results = []; // Results
this.db.list('/items', { query: {
orderByChild: 'title',
equalTo: 'wolf'
}}).subscribe(items => {
const startTime = 0; // Some start time
const endTime = 1; // Some end time
items.forEach(item => {
if (item.dateEnd < endTime && item.startTime > startTime) {
results.push(item);
}
});
// `results` will now be filled with the items.
})
我是 Firebase 的新手,在执行任何简单的数据库操作时遇到很多问题。
我需要使用更多属性过滤一组数据。这是我的 Firebase 实时数据库:
"items" : {
"-KuJdzzI82tnp1etnR0E:" : {
"dateEnd" : 1506356341284,
"dateStart" : 1505751541284,
"enabled" : 0,
"title" : "cat"
},
"-KuKeCwPtkH_Ub9YMq4C:" : {
"dateEnd" : 1505665110444,
"dateStart" : 1505146710444,
"enabled" : 1,
"title" : "wolf"
},
"-KuKeD1evhc4mw2njQqV:" : {
"dateEnd" : 1506961268244,
"dateStart" : 1506442868244,
"enabled" : 0,
"title" : "fish"
}
}
如果时间戳在 dateStart 和 dateEnd 之间并且启用了 ="1".
,我必须提取标题为 "wolf" 的元素
我在 AngularFire2 文档中读到可以查询列表,但唯一的例子是具有 "orderByChild" 和 "equalTo" 组合的单个过滤器属性。
是否可以使用 AngularFire2 来解决这个问题?
谢谢。
您不能向同一个查询添加两个过滤器。您需要对预期的较小数据集进行查询,然后筛选出结果。
const results = []; // Results
this.db.list('/items', { query: {
orderByChild: 'title',
equalTo: 'wolf'
}}).subscribe(items => {
const startTime = 0; // Some start time
const endTime = 1; // Some end time
items.forEach(item => {
if (item.dateEnd < endTime && item.startTime > startTime) {
results.push(item);
}
});
// `results` will now be filled with the items.
})