【发布时间】:2015-11-19 16:31:36
【问题描述】:
假设我的firebase数据结构如下图所示:
我正在尝试根据settings 中的customerNumber 查询客户端。
我最近的尝试,我尝试了以下方法:
var number = register.number;
var ref = new Firebase(fbUrl+'/clients/');
ref.orderByChild("settings").orderByChild("customerNumber").equalTo(number).on("child_added", function(snapshot) {
console.log(snapshot.key());
});
但显然你不能使用两个orderByChild() 函数。
那么我该怎么做呢?我已经构建了这个项目太多,现在无法改变我的结构,所以这不是一个选项或解决方案,目前是可行的。
我想根据父数据结构设置中的customerNumber匹配返回整个父数据。
【问题讨论】:
-
试试
ref.orderByChild("settings/customerNumber").equalTo(number).on(...。请参阅我们介绍该功能的博客文章:firebase.com/blog/2015-09-24-atomic-writes-and-more.html -
@FrankvanPuffelen 我这样做时收到此错误:错误:Query.orderByChild 失败:第一个参数是无效键:“settings/customerNumber”。我需要更新我的 Firebase 版本吗?
-
我更新了我的 firebase 版本。我现在有这个:
ref.orderByChild("settings/customerNumber").equalTo(number).on("value", function(snapshot) { console.log(snapshot.val()); });这个控制台每次都记录 null。 -
@FrankvanPuffelen 有什么想法吗?
-
/clients/settings 不是有效路径。您需要将 /clients/client_id/settings/customerNumber 作为路径,其中 client_id 是上面的 uid 之一。 (-Kxxxyyy)。请复制并粘贴您的代码和结构,而不是图片。它为我们节省了大量尝试回答的时间。
标签: angularjs firebase angularfire