简体   繁体   English

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

[英]How to fetch nested json data from firebase?

I want to create a dropdown menu from data that is coming from realtime database.我想根据来自实时数据库的数据创建一个下拉菜单。 I have written few lines of code but not able to get subcategory created an interface我写了几行代码但无法让子类别创建接口

export interface MenuInfo {
  name: string;
  subcategory?: MenuInfo[];
}
  menuList: MenuInfo[] = [];

  constructor(public dataService: DataService) {}

  ngOnInit() {
    this.getMenuList();
  }

  getMenuList() {
    this.dataService.getMenuList().subscribe(data => {
      this.menuList = this.dataService.snapShotToArray(data);
      console.log("menulist"+ this.menuList[0].subcategory);
    });
  }
  getMenuList() {
    return this.fdb.list('category').snapshotChanges();
  }
  snapShotToArray(snapShot) {
    let retArr: any[] = [];
    snapShot.forEach(element => {
      let obj: any = {};
      obj = element.payload.val();
      obj.key = element.key;
      retArr.push(obj);
    });

    return retArr;
  }

This is json data from firebase.这是来自 firebase 的 json 数据。

category
   -LtygKwodI5HdptwuInj
     name: "Helmet"
     subcategory
       -LtygbtNUgCPC4paDswy
          name: "full-face"

How should i do to create dropdownmenu.我应该如何创建下拉菜单。 在此处输入图像描述

After retrieving the key add a reference to node subcategory , subscribe to the observable and then using forEach you can access the value of name inside subcategory:检索key后添加对节点subcategory的引用,订阅可观察对象,然后使用 forEach 可以访问子类别内name的值:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从 firebase 获取数据 - Data fetch from firebase 如何从 firebase firestore 获取数据并将数据存储在 useState 钩子中 - How to fetch data from firebase firestore and store the data in useState hook Firebase:如何从数组字段中获取数据并在控制台中打印? - Firebase: How to fetch data from an array field and print it in console? 如何使用 where 子句从 firebase 正确获取数据,并使用 flutter 从 firebase 中正确获取数据 - How to correctly fetch data from firebase using where clauses and custom filters from firebase using flutter React Native 如何从 Firebase Firestore 获取数组数据? - React Native how to fetch Array data from Firebase Firestore? 如何在 React Native 应用程序中从 Firebase 实时数据库中获取数据 - How to Fetch Data from Firebase Realtime Database in React Native App Flutter Firebase - 无法从 Firestore 获取数据 - Flutter Firebase - Not able to fetch data from Firestore React redux + 从 Firebase 获取数据 - React redux + fetch data from Firebase 在 ListView 中从 Firebase 数据库中获取子数据 - Fetch children data from Firebase Database in ListView 如何从 Firebase `get()` 中获取 `DocumentReference` - How to fetch a `DocumentReference` from a Firebase `get()`
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM