私は比較的早くFirebaseに新しいですが、私は間違いなく奇妙な問題に直面しています。デバッガで混乱した後に起こっていることは、以下の関数が行をスキップするなど奇妙な動作をしているように見えることです。storageRef.put()
Firebaseにファイルをアップロードするとコード行がスキップされますか?
これは何が起こっているのか、この関数はユーザが保存ボタン。デバッガでは、storageRefが呼び出されますが、if else文は呼び出されません。その後、関数が適切に初期化されていないオブジェクトを返すと、適切な値を持つif elseステートメントに戻ります。返され、データベースにアップロードされた値が既に間違っているので、それは遅すぎます。
func toAnyObject() -> [String : Any] {
beforeImageUrl = ""
let storageRef = FIRStorage.storage().reference().child("myImage.png")
let uploadData = UIImagePNGRepresentation(beforeImage!)
storageRef.put(uploadData!, metadata: nil) { (metadata, error) in
if (error != nil) {
print(error)
} else {
self.beforeImageUrl = (metadata?.downloadURL()?.absoluteString)!
print("upload complete: \(metadata?.downloadURL())")
}
}
let firebaseJobObject : [String: Any] = ["jobType" : jobType! as Any,
"jobDescription" : jobDescription! as Any,
"beforeImageUrl" : beforeImageUrl! as Any,]
return firebaseJobObject
}