【问题标题】:How to receive an array from Firebase in Swift如何在 Swift 中从 Firebase 接收数组
【发布时间】: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))
  • 你的问题解决了吗?

标签: ios arrays firebase swift3 firebase-realtime-database


【解决方案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..&lt;scores.count 应该是for i in 0..&lt;snapshot.childrenCount
  • "Do the same for Names" 是什么意思我如何指定名称数组而不是分数数组@AtaerCaner
  • 你能分享一下你的数据库结构吗?我可以为您提供更多视觉方面的帮助@fellowProgrammer
  • 我已经在上面发布了我的数据库结构。@AtaerCaner
猜你喜欢
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2014-12-09
  • 2021-10-31
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 2016-04-21
相关资源
最近更新 更多