javascript - 不检索记录的子项

标签 javascript firebase firebase-realtime-database

请假设以下结构:

/parentNode
     / ...
     /childNode <-- I only want this KEY without retrieving childChildNodes
         /childChildNode
         /childChildNode
         /...andManyManyMoreChildChildNodes...
     /childNode <-- by limitToFirst(2) I maybe also want this KEY but again without retrieving all the rest
         /childChildNode
         /childChildNode
         /...andManyManyMoreChildChildNodes...
     /...andManyManyMoreChildNodes...
         / ...

我遇到了这样的事情:

let child = "1500127452209";
const findDateRef = firebase.database().ref("parent/");
findDateRef.orderByKey().startAt(child).limitToFirst(2).once('value', snap => {
    console.log("result I want", Object.keys(snap.val()));
    console.log("data retrieved", snap.val());
});

第一个日志代表我想要的结果,但第二个日志显示所有不需要的数据都在客户端上检索和过滤,这不是我想要的。

那么如何阻止 Firebase 读取子节点?

最佳答案

实时数据库的结构是这样的:从引用读取会读取该引用下的所有数据,包括子节点。如果您只需要数据的某些部分,那么除了此处的数据之外,该数据还应该有自己的节点。就像这样,您需要对数据进行非规范化。以下是一些资源:

Documentation- Best practices on structuring the Firebase Realtime Database

Denormalization is normal with the Firebase Database - Firecasts

The Firebase Blog: Denormalizing Your Data is Normal

关于javascript - 不检索记录的子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45489851/

相关文章:

javascript - 区分用于样式和 Javascript 的 CSS 类

java - Android Firebase 存储 : How to get file size from firebase storage file url before downloading it?

ios - Firebase 更改 photoURL

android - 我应该将我的 firebase 数据库迁移到 firestore 数据库吗?

javascript - 存储和调用 cookie Javascript 的问题

javascript - 带有光标跟随器的 Canvas

ios - FCM 为 IOS 通知抛出无效参数

android - 如何从 Firebase 检索所有数据并将其放在 RecyclerView 上

java - 如何将 Firebase 数据放入 ListView?

javascript - 是否可以使用 pointFormatter 完全隐藏工具提示?