Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何从firebase获取嵌套json数据?_Angular_Firebase - Fatal编程技术网

Angular 如何从firebase获取嵌套json数据?

Angular 如何从firebase获取嵌套json数据?,angular,firebase,Angular,Firebase,我想从来自实时数据库的数据创建一个下拉菜单。 我写了几行代码,但无法得到子类别 创建了一个接口 export interface MenuInfo { name: string; subcategory?: MenuInfo[]; } 这是来自firebase的json数据 category -LtygKwodI5HdptwuInj name: "Helmet" subcategory -LtygbtNUgCPC4paDswy

我想从来自实时数据库的数据创建一个下拉菜单。 我写了几行代码,但无法得到子类别 创建了一个接口

export interface MenuInfo {
  name: string;
  subcategory?: MenuInfo[];
}
这是来自firebase的json数据

category
   -LtygKwodI5HdptwuInj
     name: "Helmet"
     subcategory
       -LtygbtNUgCPC4paDswy
          name: "full-face"
如何创建下拉菜单。

检索
键后
添加对节点
子类别的引用
,订阅可观察对象,然后使用forEach可以访问子类别内的
名称
值:

snapShot.forEach(element => { 
  let lists = this.fdb.list("category/"+element.key+"/"+"subcategory").snapshotChanges();
  lists.subscribe(data => { 
    data.forEach(subElem => {
      console.log(subElem);
  });
 });
});

什么是日志输出?我正在获取类别名称,但不是其子类别
错误:找不到类型为“object”的不同支持对象“[object object]”。NgFor仅支持绑定到诸如数组之类的Iterables。
子类别不是数组。你不能使用ngFor,它是一个子集合吗?如果是这样,只需执行ref.collection('something').doc('a').collection('else').doc('b'),因为它是单个对象,所以您可以在html代码中使用
{{{subcategory.name}}
  snapShotToArray(snapShot) {
    let retArr: any[] = [];
    snapShot.forEach(element => {
      let obj: any = {};
      obj = element.payload.val();
      obj.key = element.key;
      retArr.push(obj);
    });

    return retArr;
  }
category
   -LtygKwodI5HdptwuInj
     name: "Helmet"
     subcategory
       -LtygbtNUgCPC4paDswy
          name: "full-face"
snapShot.forEach(element => { 
  let lists = this.fdb.list("category/"+element.key+"/"+"subcategory").snapshotChanges();
  lists.subscribe(data => { 
    data.forEach(subElem => {
      console.log(subElem);
  });
 });
});