Firebase 深度查询
Firebase deep querying
这个问题是关于实现 firebase 深度查询的。考虑 firebase 中的以下结构:
在这里,我的 ref 指向结构的根 /messages
。所以我有:
var ref = new Firebase("https://cofounder.firebaseio.com/messages");
我想查询那些带有member = -752163252
的消息ID。所以基本上返回的对象应该是带有键 655974744
的对象。我该如何在 firebase 中执行此操作?
这是我在我的控制台中尝试过的:
ref.orderByChild("members").equalTo(235642888).on('value', function(snap){console.log("Found ",snap.val())});
结果是:
VM837:2 Found null
我感觉某处缺少 link。基本上,我想知道是否有任何方法可以在没有父键 ID 的情况下查询深层嵌套数据(在本例中为 25487894,655974744)。
此外,如果我可以扩展我的问题,有没有办法添加一个侦听器,当添加包含 member = -752163252
的新 messageId(在本例中为 25487894,655974744)时回调。
希望我的问题足够清楚。非常感谢任何帮助!
编辑:
我已经看过恐龙的例子,这就是我尝试过的方法,但没有成功。
您的查询断言 "members" 节点是一个值为 235642888
的整数,但事实并非如此。它是一个包含键列表的对象。
相反,您需要使用 deep child query 语法和类似以下内容:
ref.orderByChild("members/235642888").equalTo(235642888);
请注意,您并不真的需要键的值就是键本身。您可以通过将其设置为二进制 true
或 1
来节省存储空间。查询大致相同:
ref.orderByChild("members/235642888").equalTo(true);
这个问题是关于实现 firebase 深度查询的。考虑 firebase 中的以下结构:
在这里,我的 ref 指向结构的根 /messages
。所以我有:
var ref = new Firebase("https://cofounder.firebaseio.com/messages");
我想查询那些带有member = -752163252
的消息ID。所以基本上返回的对象应该是带有键 655974744
的对象。我该如何在 firebase 中执行此操作?
这是我在我的控制台中尝试过的:
ref.orderByChild("members").equalTo(235642888).on('value', function(snap){console.log("Found ",snap.val())});
结果是:
VM837:2 Found null
我感觉某处缺少 link。基本上,我想知道是否有任何方法可以在没有父键 ID 的情况下查询深层嵌套数据(在本例中为 25487894,655974744)。
此外,如果我可以扩展我的问题,有没有办法添加一个侦听器,当添加包含 member = -752163252
的新 messageId(在本例中为 25487894,655974744)时回调。
希望我的问题足够清楚。非常感谢任何帮助!
编辑:
我已经看过恐龙的例子,这就是我尝试过的方法,但没有成功。
您的查询断言 "members" 节点是一个值为 235642888
的整数,但事实并非如此。它是一个包含键列表的对象。
相反,您需要使用 deep child query 语法和类似以下内容:
ref.orderByChild("members/235642888").equalTo(235642888);
请注意,您并不真的需要键的值就是键本身。您可以通过将其设置为二进制 true
或 1
来节省存储空间。查询大致相同:
ref.orderByChild("members/235642888").equalTo(true);