首页 > 解决方案 > Firebase 和曾经有什么不同?

问题描述

我在了解更多关于 on and once in firebase API 时遇到了问题。假设我有这个数据库结构 在此处输入图像描述 当我监听 child_add 时,它按预期工作。

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”排序的结果。但第二个不会。它没有订单就返回。

标签: javascriptfirebasefirebase-realtime-database

解决方案


推荐阅读