如何在 Swift 中从 Firebase 接收数组
Posted
技术标签:
【中文标题】如何在 Swift 中从 Firebase 接收数组【英文标题】:How to receive an array from Firebase in Swift 【发布时间】:2017-03-06 13:51:38 【问题描述】:我在 firebase 上有一组分数和名称,我想接收该数组并将其放入一个数组中。我按照文档所说的内容结束了这个......
databaseRef.child("Leaderboard").queryOrderedByKey().observe(.childChanged, with:
snapshot in
let value = snapshot.value as? NSDictionary
//Add data to variables
但是value
被转换为字典,我有两个想要接收的数组,如何在不混合它们的情况下访问它们?
我的 Firebase 层次结构如下所示
Leaderboard
Scores
50
47
... //Continues
Names
John Doe
BOB
...//Continues
【问题讨论】:
能否添加print(value)
的控制台日志
当我 print(value)
我得到零,但如果我打印 snapshot.value 我得到 Optional(<__NSArrayM 0x608000248610>(John Doe, BOB // and so on))
和分数相同的东西。 @Nirav D
@fellowProgrammer 您所说的“分数相同”是什么意思?它正在打印两个可选数组?
它正在打印两个可选数组。 Name 数组看起来像我之前发布的内容,Scores 数组看起来几乎相同,只是值不同,Optional(<__NSArrayM 0x608000051d30>(178, 66 // and so on))
。
你的问题解决了吗?
【参考方案1】:
为每个写一个并将其转换为Array
var yourArray = [Int]()
if let scores = snapshot.value as? NSArray
for i in 0..<scores.count
yourArray.append(scores[i] as! Int)
对Names
做同样的事情
【讨论】:
我认为for i in 0..<scores.count
应该是for i in 0..<snapshot.childrenCount
"Do the same for Names
" 是什么意思我如何指定名称数组而不是分数数组@AtaerCaner
你能分享一下你的数据库结构吗?我可以为您提供更多视觉方面的帮助@fellowProgrammer
我已经在上面发布了我的数据库结构。@AtaerCaner以上是关于如何在 Swift 中从 Firebase 接收数组的主要内容,如果未能解决你的问题,请参考以下文章
在 TableViewCell Swift 中从 Firebase 加载图像
在 swift 4.0 中从 firebase 快照字典中获取值时打开一个可选的 nil