Roh*_*lvi 3 javascript firebase firebase-realtime-database
这个问题是关于实现firebase深度查询.考虑firebase中的以下结构:
在这里,我的参考指向结构的根/messages.所以我有 :
var ref = new Firebase("https://cofounder.firebaseio.com/messages");
Run Code Online (Sandbox Code Playgroud)
我想查询Id的消息member = -752163252.所以基本上返回的对象应该是带键的对象655974744.我如何在firebase中这样做呢?
这是我在控制台中尝试的内容:
ref.orderByChild("members").equalTo(235642888).on('value', function(snap){console.log("Found ",snap.val())});
Run Code Online (Sandbox Code Playgroud)
结果是:
VM837:2 Found null
Run Code Online (Sandbox Code Playgroud)
我觉得某处缺少某个链接.基本上,我想知道是否有任何方法可以在没有父键ID的情况下查询深层嵌套数据(在本例中为25487894,655974744).
另外,如果我可以扩展我的问题,是否有一种方法可以添加一个在添加新的messageId(在本例中为25487894,655974744)时回调的监听器member = -752163252.
希望我的问题很清楚.任何帮助是极大的赞赏!
编辑:
我已经看过恐龙的例子,这就是我尝试过的方法,但它没有用.
您的查询断言"members"节点是一个带有值的整数235642888,当然不是.它是一个包含键列表的对象.
相反,您可能希望使用深度子查询语法,如下所示:
ref.orderByChild("members/235642888").equalTo(235642888);
Run Code Online (Sandbox Code Playgroud)
请注意,您并不需要将键的值作为键本身.您可以通过只将其设置为二进制节省存储true或1.查询将大致相同:
ref.orderByChild("members/235642888").equalTo(true);
Run Code Online (Sandbox Code Playgroud)