Angular 5,订阅firebase,第一个元素是undefined
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular 5,订阅firebase,第一个元素是undefined相关的知识,希望对你有一定的参考价值。
这是我的打字稿代码,它订阅了数据库服务:
this.afDb.list('/images/').valueChanges().subscribe(items => {
console.log(items);
});
但每个数组的第一项是空的,null,未定义。我哪个部分出了问题以及如何预防呢?
答案
看一下images / q13下的数据。钥匙都是数字。这意味着Firebase SDK会将其解释为数组。您的日志输出确认了这一点 - 注意数组成员周围的方括号。
要记住的一件事是javascript数组从0开始。这意味着,当Firebase将您的数据库内容转换为数组时,它将跳过0,因为您在该索引处没有数据。你看到的数字总是他们正确的数组索引。它并不是简单地压缩整个事物。
因此,如果您想在数组中使用元素0,请将数据库键设置为0.否则,在客户端代码中,跳过第一个元素,期望不存在0元素。
以上是关于Angular 5,订阅firebase,第一个元素是undefined的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Observable、Firebase (Angular 6) 为 var 赋值
离子生命周期取消/订阅 Firebase 数据库流(使用异步管道)
Angular / RxJs对一个observable的多个订阅