在Closure外部访问数据,Firebase ObserveSingleEvent // SWIFT

时间:2016-12-01 06:41:18

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

当我第一次提出这个问题时,我没有真正完成我的研究。但是经过20多个小时后,我的结构与Firebase文档完全相同。但是,我无法访问闭包之外的任何数据。这是应该将数据写入的结构:

    struct UserStruct {
        let name : String!
        let age : String!
    }

当它被调用时,所有内容都在数据库中写得很完美,在封闭内部它没有打印nil,它确实打印出实际值。我已经尝试了

    DispatchQueue.main.async {

    }

但那也没有用,有人引导我!任何帮助表示赞赏,这是我与Firebase的最后一期。

     let currentUser = FIRDatabase.database().reference(withPath: "users").child((FIRAuth.auth()!.currentUser?.uid)!)
        currentUser.observeSingleEvent(of: .value, with: { snapshot in
        let value = snapshot.value as? NSDictionary
        let name = value?["name"] as? String
        let age = value?["age"] as? String
        self.userAdded.insert(UserStruct(name: name, age: age), at: 0) // 1
        let user = UserStruct.init(name: name, age: age) // 2

        print("1 \(user.name)")
        print("2 \(self.userAdded[0].name!)")
    })

我写了两种获取数据的方法,第二(2)种方式是Firebase建议的方式,但我甚至无法像使用Struct那样获得更近的用户。

0 个答案:

没有答案