Firebase 检索数据,返回 FATAL ERROR Index Out of Range

Posted

技术标签:

【中文标题】Firebase 检索数据,返回 FATAL ERROR Index Out of Range【英文标题】:Firebase Retrieving Data, returning FATAL ERROR Index Out of Range 【发布时间】:2016-11-21 23:20:01 【问题描述】:

我有这个从 Firebase 检索项目的类:

现在,当我尝试将这些数据放入某个地方时,例如我会做的事情,

let item = [CalendarItem]()
let items = item[item.count] <-- ERROR HERE

textLabel.text = items.name

但是我得到了这个错误(致命错误:索引超出范围

以下是控制台中早期创建的项目:

我做了一个print(item.count) 并且我得到了 0 因此错误,但我不明白为什么这些项目在控制台中。

请有人指出正确的方向。

【问题讨论】:

很高兴您找到了问题的原因。对于未来的问题:请将实际代码和 JSON 作为文本发布,而不是发布它们的图片。 *** 很好地突出显示它们并将它们作为文本使其可搜索,使我们能够轻松地使用它来测试您的实际代码/数据并在我们的答案中使用它,通常只是一件好事。跨度> 【参考方案1】:

想通了...只是实际上并没有调用观察来将项目加载到数组中

    ref.observe(.value, with:  snapshot in
                print(snapshot.value!)
                var newItems: [CalendarItem] = []
                for item in snapshot.children 
                     let calendarItem = CalendarItem(snapshot: item as! FIRDataSnapshot)
                     newItems.append(calendarItem)
                
               self.calanderDate = newItems
               //self.tableView.reloadData()
            )

【讨论】:

以上是关于Firebase 检索数据,返回 FATAL ERROR Index Out of Range的主要内容,如果未能解决你的问题,请参考以下文章

如果键仅返回 true,如何通过连接从 Firebase 数据库中检索数据?

从 Firebase 为每个特定帖子检索特定数据的比 datasnapshot 更好的方法?返回的位置错误

if 语句在从 firebase 检索数据时未返回正确的元素

Firebase/Android:将检索到的值从 Firebase 添加到 arraylist 会返回空指针异常

Swift不检索Firebase值(返回值为NSNull)

无法从从 Firebase 实时数据库中检索数据以在以下代码行中使用它的方法中获取返回值 [重复]