0
変数numはobserveSingleEventの内部で変更されますが、空の値に変更された直後に変更されます。どのようにnumの値を変更するのですか?observeSingleEventで変数の値が変更されない
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
}
また、データに変更を加えるには、 'observeSingleEvent'ではなく' observeEventOfType'を使用してください。 –
@FrankvanPuffelenありがとうございました! – user7780338
2番目の 'print(num)'が空の値であるのは、Firebaseが非同期であるためです。最後の印刷は、完了ハンドラ内の印刷の前に実行されます。 – dstepan