如何在Firebase数据库树中排除某些键

时间:2019-03-29 08:50:01

标签: javascript node.js firebase firebase-realtime-database

我正在尝试仅获取具有不同日期值的children的键。我查看了firebase api参考文档,他们有where,但似乎找不到在哪里使用它。我想排除键date,仅显示其余键。目前,我几乎全都想排除date

2019-03-27
AB000002_AB0244
AB000002_AB0827
date

这是我的Firebase数据库

enter image description here

const fetchReminders =  ()=> {
    const ref  = db.ref("reminders");
    let dateTime = new Date();
    let currentDate = dateFormat(dateTime, "yyyy-mm-dd");
    ref
        .orderByChild('date')
        .endAt(currentDate)
        .once('value', (pSnapshot)=> {
            pSnapshot.forEach((theSnapshot)=> {
                console.log(theSnapshot.key);
                theSnapshot.forEach( (pNotificationSnapshot)=> {
                    console.log(pNotificationSnapshot.key);
                });
            });
    }).catch( (error)=> {
        console.log(error)
    })
};

2 个答案:

答案 0 :(得分:2)

您需要更改数据库,因为date已经是父节点,那么就不需要添加子节点date : 2019-03-10,或者如果您必须添加date然后可以将其添加到另一个key下。

应该创建您的数据库,以使查询变得容易和可能。

更多信息在这里:

https://firebase.google.com/docs/database/web/structure-data

答案 1 :(得分:1)

这是不可能的:使用实时数据库

  

默认情况下,查询很深:它们总是返回整个子树。

如此处https://firebase.google.com/docs/firestore/rtdb-vs-firestore#querying

所述

由于您正在查询reminders节点的直接子节点,因此您将获得整个子树,包括AB000002_AB0244AB000002_AB0827节点及其子节点,以及{{1 }}节点。