请假设以下结构:
/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
关于javascript - 不检索记录的子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45489851/