【发布时间】:2018-08-08 23:21:49
【问题描述】:
这是我订阅数据库服务的打字稿代码:
this.afDb.list('/images/').valueChanges().subscribe(items => {
console.log(items);
});
但每个数组的第一项是空的、null 的、未定义的。我做错了哪一部分以及如何预防?
【问题讨论】:
标签: angular firebase google-cloud-firestore angular5
这是我订阅数据库服务的打字稿代码:
this.afDb.list('/images/').valueChanges().subscribe(items => {
console.log(items);
});
但每个数组的第一项是空的、null 的、未定义的。我做错了哪一部分以及如何预防?
【问题讨论】:
标签: angular firebase google-cloud-firestore angular5
查看 images/q13 下的数据。键都是数字。这意味着 Firebase SDK 会将其解释为一个数组。您的日志输出证实了这一点 - 请注意数组成员周围的方括号。
要记住的一件事是 JavaScript 数组从 0 开始。这意味着,当 Firebase 将您的数据库内容转换为数组时,它将跳过 0,因为您在该索引处没有数据。您看到的数字始终是它们正确的数组索引。这不是简单地压缩整个事情。
因此,如果您想要数组中的元素 0,请从 0 开始您的数据库键。否则,在您的客户端代码中,跳过第一个元素,期望不会有 0 元素。
【讨论】: