0
Firebase Storageに画像をアップロードし、そのパスのダウンロードURLを返す機能を作成しようとしています。機能を使用してFirebaseストレージからdownloadUrlを返そうとしています
func uploadImage(to reference:StorageReference, image:UIImage) -> URL? {
let imageData = UIImageJPEGRepresentation(image, 0.2)
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
var downloadURL = metadata.downloadURL()
reference.putData(imageData!, metadata: metadata) { (metadata, error) in
if error != nil {
print("Couldnt upload due to \(String(describing: error))")
}
downloadURL = metadata?.downloadURL()
}
return downloadURL!
}
私はdownloadUrlは常にnilを返すように私が望む結果を得るように見えることはできません。
これは、関数がどのように見えるかです。私は間違って何をしていますか?
こんにちはクリス、返信ありがとうございます。それで、UIImageをパラメータにとり、Storageにアップロードし、アップロードが完了した後に最終的にURLを返す関数を使用できる他の方法はありますか? – AAAM
上記の例ではURLが与えられますが、必ずコールバックを使用する必要があります。よくわからない場合は、ClosureのSwiftのドキュメントをご覧ください。https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html –
https:// stackoverflowもご覧ください。より一般的な説明については、http://www.google.com/support/bin/answer.py?answer=14220321/how-do-i-return-as-asynchronous-call/14220323#14220323を参照してください。 –