首页 > 解决方案 > 将数据从 Firebase 拉到本地数组,但不能迭代每个项目。长度 = 0

问题描述

我有一个数组和字符串定义如下:

  Day1;Day2;Day3;Day4;Day5: string;
  BurnData: Array<number> = [];

一个这样的函数,我在其中对他们各自日期的值进行评分:

  grabBurnData(): void{

    this.db.collection('MattDataPull').doc('Board1').get().toPromise().then(r => {
        this.BurnData.push(
        parseInt(r.get('Day1')),
        parseInt(r.get('Day2')),
        parseInt(r.get('Day3')),
        parseInt(r.get('Day4')),
        parseInt(r.get('Day5')));
    });
  }

似乎为什么我在 console.log 中,值在数组中,但我无法遍历它们。我得到'未定义'。这里发生了什么?我该如何解决这个问题?

标签: arraysangularfirebase

解决方案


我假设您的r.get('Day1')函数将返回一个Number. 尝试这样的事情。BurnData将您的Array 类型更改为any以防万一,以避免任何类型转换错误。

 Day1;Day2;Day3;Day4;Day5: string;
 BurnData: Array<any> = [];

 grabBurnData(): void {
    this.db.collection('MattDataPull').doc('Board1').get().toPromise().then(r => {
          this.BurnData.push(parseInt(r.get('Day1')));
          this.BurnData.push(parseInt(r.get('Day2')));
          this.BurnData.push(parseInt(r.get('Day3')));
          this.BurnData.push(parseInt(r.get('Day4')));
          this.BurnData.push(parseInt(r.get('Day5')));
    });
  }

推荐阅读