如何在firebase(swift)中获取子节点的值,并将其显示在视图控制器上的标签中

时间:2015-09-05 17:13:09

标签: ios swift firebase

这是我的firebase结构

用户:

简单登录1:

  • 姓名:迈克
  • 年龄:24
  • 地点:美国

我正在尝试获取当前登录用户的信息并将其显示在视图控制器的标签上。

我在视图中写了以下代码:load:

override func viewDidLoad() {
    super.viewDidLoad()

    ref.observeSingleEventOfType(.ChildAdded, withBlock: { snapshot in

    println(snapshot.value["users\(self.ref.authData.uid)/age"] as? String)

    })

但是当我运行我的应用程序时,它会在控制台中输出“nil”。我应该编写哪些代码行来获取子节点的信息?一旦我得到它然后我可以轻松地根据它设置我的标签。请帮助我,我是swift和firebase的新手。

更多

以下是我创建Ref:

的方法
var ref = Firebase(url: "https://chatty93.firebaseio.com/")

var userId = authData.uid

let newUser = [                       
  "name": self.Name.text,
  "location" : "",
  "age"      : "",
]

self.ref.childByAppendingPath("users")
    .childByAppendingPath(authData.uid)
    .setValue(newUser) 

该名称由此视图控制器上的登录用户提供,年龄和位置由另一个视图控制器上的登录用户提供..这是我在另一个视图控制器上编码的内容:

var age: Void  = ref.childByAppendingPath("users/\(ref.authData.uid)/age").setValue(AgeTextField.text)
var location: Void  = ref.childByAppendingPath("users/\(ref.authData.uid)/location").setValue(LocationTextField.text)
var About : Void = ref.childByAppendingPath("users/\(ref.authData.uid)/about").setValue(AboutTextField.text)

现在在另一个视图控制器上我只想要从firebase获取这个年龄的位置和名称并在标签上显示但我只是想不通怎么做..我尝试了单一类型的观察事件但它是给我零..请帮助我!谢谢:))

1 个答案:

答案 0 :(得分:1)

尝试

ref.childByAppendingPath("users")
.childByAppendingPath(authData.uid)
.childByAppendingPath("age")
.observeSingleEventOfType(.ChildAdded, withBlock: { snapshot in

        println(snapshot.value)


    })