我在一次或多次在Firebase API中了解更多内容时遇到了问题。 假设我有这个数据库结构 当我收听child_added时,它会按预期工作。
firebase.database().ref(this.getRootRef())
.orderByChild('createdAt')
.limitToLast(NUM_MSG_PER_REQUEST)
.on('child_added', (datas) => {
if (datas) {
_callback(datas.val());
}
});
但是当我一次过滤时,什么都没有发生。
firebase.database().ref(this.getRootRef())
.orderByChild('createdAt')
.endAt('createdAt', '2019-03-17 02:46:50') // tested with startAt, equalsTo => the same result. No effect
// .limitToLast(NUM_MSG_PER_REQUEST)
.once('value', (vals) => {console.log(vals.val()});
有人可以详细解释这两个功能吗?在这种情况下,我应该写些什么做一次过滤器?
非常感谢!
于2019年3月18日更新
函数getRootRef()返回'/ messages / 2019-03-15'。
这两个代码段都有效,但是我不清楚这里是如何应用过滤器的。
例如:orderByChild('createdAt')
使用此过滤器,第一个返回的结果按'createdAt'排序。但是第二个不会。它没有顺序返回。