将Firebase数据库快照转换为TypeScript中的数组时出错
问题描述:
我一直在关注本教程https://ilikekillnerds.com/2017/05/convert-firebase-database-snapshotcollection-array-javascript/,以便将firebase快照转换为离子应用程序中的数组。这是我的代码:将Firebase数据库快照转换为TypeScript中的数组时出错
这是火力点我的数据结构:
当我使用我的代码,这是错误它给了我:
而当我debbug错误似乎是代码行,我可以看到快照中的第一项存储在数组中,那么下一个值是未定义的。虽然如果我只是打印打印就好键:
任何人有任何想法,这是怎么回事?
答
你在你的数据库像boolLogin
和disponible.
因此,当您使用foreach来的值,并添加一键他们,因为它试图添加关键项,即使它有您收到此错误信息的几个boolean
性质在这条线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);
})
+0
感谢它完美的作品。 –
快照添加到阵列你的数据库中有几个'boolean'属性,比如'boolLogin'和'disponible'。因此,当你使用foreach迭代值并向它们添加一个键时,你会得到这个错误,因为它试图向'item'添加键,即使它在这一行中具有布尔值'item.key = childSnapshot.key; ' – Niladri
对于布尔字段,你必须以不同的方式处理它。 – Niladri
但即使我删除布尔字段并只留下字符串字段,它也会给我带来同样的问题。我会更新问题与输出在没有布尔字段 –