Firebase循环获取child_added

时间:2016-11-08 07:26:10

标签: firebase ionic-framework firebase-realtime-database ionic2

我正在使用Ionic 2.

这是我的Firebase结构 enter image description here

我希望在这张firebase照片中得到java和数学的孩子,他们的孩子每个都是0,1。

我做了类似的事

 public getCourse(departmentId:any):any{
   var semesterRef = firebase.database().ref('Courses/'+departmentId+'/SemA')
  semesterRef.on('child_added', function(courseSnapshot) {
  console.log(courseSnapshot.key);
});

但它只给我Java和数学名称,而不是他们的孩子。如何在循环中运行并获取它并以数组形式返回。

这是我的代码 enter image description here

1 个答案:

答案 0 :(得分:4)

您可以使用快照的forEach方法来迭代密钥的子项:

public getCourse(departmentId:any):any{
  var semesterRef = firebase.database().ref('Courses/'+departmentId+'/SemA')
  semesterRef.on('child_added', function(courseSnapshot) {
    console.log(courseSnapshot.key);
    courseSnapshot.forEach(function(childSnapshot):boolean{
      console.log(childSnapshot.key);
      // ... etc.
      return false; // to appease TypeScript
    });
  });
}

Firebase API不会返回数组,因为它会将数组转换为具有从数组索引派生的键的对象,但是如果这是您需要的,您可以枚举子项并重新构建数组。