【问题标题】:Firebase process child snap that has dictionary inside it in Swift 3在 Swift 3 中包含字典的 Firebase 进程子快照
【发布时间】:2016-10-11 19:45:17
【问题描述】:

我正在尝试从 Firebase 中的某些用户那里获取信息。
为此,我正在运行一个查询,该查询根据我传递的用户 ID 选择用户。
问题是,在用户对象内部,还有另一个 object
当我尝试在我的代码中获取整个用户时,我只得到最后一个对象。

这就是用户在 Firebase 中的样子:

USERIDHERE
{
  "coins" : 4850,
  "name" : "Jogador 1020",
  "score" : 22,
  "unlocked" : {
    "000" : true,
    "KA0293" : true
  }
}

这是获取用户的代码

ref.child("users").child(key).observeSingleEvent(of: .value, with: { (snapshot) in
                        for snap in snapshot.children.allObjects as! [FIRDataSnapshot] {
                            if let dict = snap.value as? Dictionary<String,AnyObject> {
                                print(dict) 
                            }

                        }

                    })

当我打印字典时,我没有得到所有用户信息,而是在这个例子中得到以下输出:

["000": 1, "KA0293": 1]

【问题讨论】:

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


    【解决方案1】:

    数据库:


    代码:

    let ref = FIRDatabase.database().reference()
    let refUsers = ref.child("users")
    let refUser = refUsers.child("123")
    
    refUser.observeSingleEvent(of: .value) { (snap: FIRDataSnapshot) in
      if snap.exists() {
        if let dict = snap.value as? [String: Any] {
          print(dict)
        }
      }
    }
    

    打印输出:

    ["unlocked": {
        000 = 1;
        KA0293 = 1;
    }, "name": Jogador 1020, "score": 22, "coins": 4850]
    

    【讨论】:

      【解决方案2】:
          ref.child("users").child(key).observeSingleEvent(of: .value, with: { (snapshot) in
      
      // you can get your user's name like below:
      
      username = (snapshot.value as? NSDictionary)?["name"] as! String
      
        if let dict = snapshot.value as? Dictionary<String,AnyObject> {
                                          print(dict) 
                                      }
                              })
      

      快照已经有用户的所有信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-26
        • 2016-05-27
        • 2017-01-30
        • 2016-06-05
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多