2015-11-19 106 views
1

再说说我的火力点数据结构看起来像下面这样的画面:获取基于儿童父母火力地堡的价值

enter image description here

我想查询基于内settingscustomerNumber客户。

我最近一次尝试,我已经试过如下:

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

+0

尝试'ref.orderByChild( “设置/ customerNumber之”)equalTo(数量)。在(...'。 。看到这篇博文我们介绍了这个功能:https://www.firebase.com/blog/2015-09-24-atomic-writes-and-more.html –

+0

@FrankvanPuffelen我这样做的时候出现这个错误:错误:Query.orderByChild失败:第一个参数是一个无效的键:“settings/customerNumber”。是否需要更新我的firebase版本? – moevans

+0

我更新了我的firebase版本,现在有了:'ref.orderByChild(“settings/customerNumber“)。equalTo(number).on(”value“,function(snapshot)){ console.log(snapshot.val()); });'这个控制台每次都是空的。 – moevans

回答

0

你应该“不想展数据”作为火力地堡问我们自己的文档中要做到:structuring data in firebase

你可以认为,该custumerNumber与Firebasekey在客户端映射的第二索引

+0

阅读倒数第二行的问题。 – moevans

+0

对不起,我没有看到这个:'那么我会怎么做?我已经建立了这个项目太多的方法来改变我的结构,所以这不是一个可行的选择或解决方案。“这是我的坏 – ilyass

+1

@ilyass:一般来说,最好将数据变平,但我认为这并不适用于此。嵌套设置可作为命名键寻址,与列表列表(列表列表...)相比,问题更少。 –

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