0

我有这个节点,参考子节点有 randomID。

master: {
 123: {
  text: "hello world"
 },

 456: {
  text: "hello world 2"
 }
}

ref: {
 abc: {
  123: 1,
  456: 1
 },

 efg: {
  456: 1
 }
}

我想循环ref和它refToMaster。如何使用 FirebaseIndex 进行查询?

new FirebaseIndex(ref.child(STUCK_HERE), master);

更新

我将节点结构更新为 hiattp 和 kato 提到的内容。

对不起,我不清楚的问题,我重新编辑这个。实际上,我想同时检索ref.abcref.efg检索它们的相关主数据,它们是123456

以下是我尝试过的。

angularFireCollection(ref, function(s) {
 s.forEach(function(cs){
  //cs.name() - So I can get abc and efg and put in FirebaseIndex
  var index = new FirebaseIndex(ref.child(cs.name()), master);
  $scope.foos = angularFireCollection(index);
  //I stuck here, must be something wrong.
 })
})
4

2 回答 2

1

在您的示例中,abc并且efg应该是键列表(作为第一个参数所必需FirebaseIndex)。因此,而不是refToMaster: "key"格式应该是"key":1,其中 1 只是一个占位符。像这样:

ref: {
  abc: {
   "123":1,
   "456":1
  },
  efg: {
   "456":1
  }
}

现在new FirebaseIndex(ref.child('abc'), master)会给你 the123和 中的456对象master,而new FirebaseIndex(ref.child('efg'), master)只会给你456对象。

于 2013-10-23T13:26:41.823 回答
0

@hiattp 已经注意到 FirebaseIndex 的标准格式。这是预期的用例。

您还可以将一个函数传递给dataReffor FirebaseIndex,这将允许您处理更复杂的路径:

new FirebaseIndex( 
   new Firebase('URL/index'), 
   function(pathName) {
      return new Firebase('URL/data/'+pathName+'/widget');
   }
);

但是由于您的数据结构在问题中,键abcefg完全是任意的 - 没有以任何方式链接到您的master数据,所以除了包含从主键到参考路径的完整映射之外,我看不到您的函数可以做什么.

于 2013-10-23T15:03:38.750 回答