【问题标题】:Angular 5, subscribing to firebase, first element is undefinedAngular 5,订阅firebase,第一个元素未定义
【发布时间】:2018-08-08 23:21:49
【问题描述】:

这是我的 firebase 实时数据库:

这是我订阅数据库服务的打字稿代码:

this.afDb.list('/images/').valueChanges().subscribe(items => {
  console.log(items);
});

但每个数组的第一项是空的、null 的、未定义的。我做错了哪一部分以及如何预防?

【问题讨论】:

    标签: angular firebase google-cloud-firestore angular5


    【解决方案1】:

    查看 images/q13 下的数据。键都是数字。这意味着 Firebase SDK 会将其解释为一个数组。您的日志输出证实了这一点 - 请注意数组成员周围的方括号。

    要记住的一件事是 JavaScript 数组从 0 开始。这意味着,当 Firebase 将您的数据库内容转换为数组时,它将跳过 0,因为您在该索引处没有数据。您看到的数字始终是它们正确的数组索引。这不是简单地压缩整个事情。

    因此,如果您想要数组中的元素 0,请从 0 开始您的数据库键。否则,在您的客户端代码中,跳过第一个元素,期望不会有 0 元素。

    【讨论】:

    • 谢谢,我按照你的说法重命名了我的图片,它解决了我的问题
    猜你喜欢
    • 2019-10-11
    • 2017-06-19
    • 2018-07-22
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多