请假设以下结构:
/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读取子节点?
答案 0 :(得分:1)
实时数据库的结构是从引用读取读取该引用下的所有数据,包括子节点。如果您只需要数据的某些部分,那么除了这里的数据外,该数据应该有自己的节点。在中,您需要对数据进行非规范化。以下是一些资源:
Documentation- Best practices on structuring the Firebase Realtime Database
Denormalization is normal with the Firebase Database - Firecasts