根据子值获取Firebase父项

时间:2015-11-19 16:31:36

标签: angularjs firebase angularfire

假设我的firebase数据结构如下图所示:

enter image description here

我正在尝试根据customerNumber中的settings来查询客户。

我最近的尝试,我尝试了以下内容:

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匹配返回整个父项。

2 个答案:

答案 0 :(得分:1)

我不确定为什么我留下的评论不适合你。这是我刚刚用来重现它的片段:

var ref = new Firebase('https://mine.firebaseio.com');
ref.child('clients')
   .orderByChild('settings/customerNumber')
   .equalTo('1234567890')
   .once('value', function(snapshot) { 
     console.log(snapshot.val()); 
   });

请参阅此jsbin:http://jsbin.com/towewegapa/edit?js,console

答案 1 :(得分:0)

Firebase要求我们在他们的文档中执行“{更喜欢扁平化数据”:structuring data in firebase

您可以维护第二个索引,该索引将custumerNumber映射到客户端中的Firebasekey