javascript - 在 Firebase 中,是否可以在不指定孩子值的情况下读取孩子的数据?
问题描述
我想检索 targetUser 为Johnny的所有实例。
问题是 Firebase 不允许我将.child()设为 null。
我怎样才能做到这一点?
这是我的尝试-
readTargetUser = () => {
allHistory = [];
let myHistory = firebase
.database()
.ref("/locations")
.child()
.child("targetUser" === "Johnny")
.limitToLast(5);
myHistory.on("value", snapshot => {
console.log(
"Here I can see all info where the targetUser is Johnny",
snapshot
);
});
};
解决方案
您正在寻找一个查询,它在 Firebase 中是通过以下方式完成的:
let myHistory = firebase
.database()
.ref("/locations")
.child("GG99AaPQjMhr0kT1xFkazjHMUrm1")
.orderByChild("targetUser")
.equalTo("Johnny")
.limitToLast(5);
有关这方面的更多信息,请参阅有关排序和过滤数据的 Firebase 文档。
如果您不知道GG99AaPQjMhr0kT1xFkazjHMUrm1
节点,则无法对targetUser
属性进行排序/过滤,因为 Firebase 数据库查询只能对每个子节点下位于已知路径的属性进行排序。
在这里查看我的答案:Firebase Query Double Nested
在这种情况下,典型的解决方案是在您的数据库中创建一个所谓的倒排索引,纯粹是为了这个用例。它看起来像:
targetUsers: {
"Johnny": {
"GG99AaPQjMhr0kT1xFkazjHMUrm1_1577194136959": true,
".../...": true
}
}
推荐阅读
- python - 从dict(python)中减去,直到达到值
- c++ - 构造成员变量的内存位置
- ios - 如何从 Xcode Organizer 中的崩溃报告中找到导致 nil 异常的确切值
- python - 逐字节读取文件而不超出内存限制
- python - 计算列表中二维对 (x,y) 的反转
- python - 是否可以在多元回归中使用单个变量进行预测?
- python - 如何在@hybrid_method 中使用 min 函数?
- java - 启动 Spring Boot 后第二次获取 ClassNotFoundException
- python - Python:selenium webdriver点击按钮执行问题
- swift - 如何在 PDFView 中移动 PDFPage 上的 PDFAnnotation?