firebase.database().ref('requests')
.orderByChild('sender')
.equalTo("viePatHR0qRaBPGvsb992LEM55F3")
.on("child_added", (snapshot) => {
console.log(snapshot.key);})
所以我试图找到图片中“请求”下的关键节点:(示例:Mt8ElzJCDfSwDgdjjLuu38KUSw83
和e3iFEuoTtJXAkLgOyxoT0LIeQAg1
)
我用过这段代码,但我什么都没回来。哪里错了?我该怎么用?
答案 0 :(得分:2)
.orderByChild
查询仅适用于子级别。 (没有孙子)在你的情况下,这将是firebase按键的级别,例如-KwqBYHP...
因此,如果你执行.orderByChild('sender')
它将无效,因为此级别上没有名为sender
的属性。
因此,根据您的情况,您有两种选择。如果viePatHR0qRaBPGvsb992LEM55F3
是唯一ID,则可以使用set
代替push
将数据保存到数据库中,从而摆脱firebase pushkeys。
如果viePatHR0qRaBPGvsb992LEM55F3
不是唯一ID,则需要修改您的参考。
修改后的引用看起来像firebase.database().ref('requests/viePatHR0qRaBPGvsb992LEM55F3').orderByChild('sender')
如果这不是您所期望的,那么您唯一的选择就是重建数据结构。通过创建一个名为:
的属性来摆脱深度嵌套 id: "viePatHR0qRaBPGvsb992LEM55F3"
直接在您的对象上(在sender
属性所在的同一级别上)。