Firebaseを利用して、ユーザーのプロフィール写真をアップロードした後、そのURLを取得して、Realtime databaseに登録するまでの一連作業。
意外と簡単だったけど、Realtime databaseに保存する時に、取得したURLの型を変更する必要があるのを知らず、少しだけ詰まった。
ViewController.swift
func fileupload(deta: UIImage) {
//保存するURLを指定
let storageRef = storage.reference(forURL: "自分のプロジェクトのURL")
//ディレクトリを指定
let imageRef = storageRef.child("User").child("image.jpg")
//保存を実行して、metadataにURLが含まれているので、あとはよしなに加工
let imageData = UIImageJPEGRepresentation(deta, 1.0)!
imageRef.putData(imageData, metadata: nil) { metadata, error in
if (error != nil) {
print("Uh-oh, an error occurred!")
} else {
//URL型をNSstring型に変更
let downloadURL = metadata!.downloadURL()
let deta = downloadURL?.absoluteString
self.ref = Database.database().reference()
self.ref.child("User").child(self.userID!).updateChildValues(["profile":deta])
print("成功!")
}
}
}