【发布时间】:2017-03-28 13:57:35
【问题描述】:
变量 num 在observeSingleEvent 中更改为我想要的,但就在它变回空值之后。我如何让 num 的值改变?
var num = Int()
FIRDatabase.database().reference().child("menus/Day1").observeSingleEvent(of: .value, with: {(snap) in
print(snap)
if let snapDict = snap.value as? [String:AnyObject]{
self.num = snapDict["date"] as! Int
print(num)
//returns the number I want
}
})
print(num)
//Returns an empty value
if num == 5 {
print("number is 5")
else {
print("number is not 5")
//goes to this
}
【问题讨论】:
-
若要同时获取数据更改,请使用
observeEventOfType而不是observeSingleEvent。 -
@FrankvanPuffelen 非常感谢!
-
第二个
print(num)是空值的原因是因为Firebase 是异步的。最后一次打印在完成处理程序中的打印之前执行。 -
@dstepan 我想在从数据库中获取值后将 num 变量用于 if 语句。如果它是异步的,我该怎么做?
-
在下面查看我的答案。
标签: ios swift firebase swift3 firebase-realtime-database