在 TypeScript 中将 Firebase 数据库快照转换为数组时出错

Error at Converting A Firebase Database Snapshot To An Array In TypeScript

我一直在学习本教程 https://ilikekillnerds.com/2017/05/convert-firebase-database-snapshotcollection-array-javascript/ 以便在我的离子应用程序中将 firebase 快照转换为数组。这是我的代码:

https://github.com/dladinot/AplicativoTutoriasMoviles/blob/master/src/pages/buscar-tutor/buscar-tutor.ts

这是我在 firebase 中的数据结构:

当我使用我的代码时,这是它给我的错误:

当我调试似乎是错误的那行代码时,我可以看到快照中的第一项存储在数组中,然后下一个值未定义。虽然如果我只打印密钥,它会打印得很好:

有人知道发生了什么事吗?

您的数据库中有几个 boolean 属性,例如 boolLogindisponible. 因此,当您使用 foreach 迭代值并向它们添加键时,您会收到此错误因为即使它在此行

中具有 boolean 值,它也会尝试向该项目添加键

item.key=childSnapshot.key;

尝试使用以下代码将快照添加到数组中

this.consultaTutor=this.afDatabase.object(`profile/SlHGkc3ZK0hHxH2s1sowpgGuJfA3`, {preserveSnapshot: true})
          this.consultaTutor.subscribe(info=>{
            info.forEach(childSnapshot=>{  
              var value = childSnapshot.val();
              var key = childSnapshot.key;
              console.log(childSnapshot.key);
              var item = { "key" : key, "value" : value};
              this.listaTutores.push(item);      
            })