前提・実現したいこと
swiftUIで取り出した写真のデータをFireStorageにアップロードしようとしましたが、
下の画像のように、サイズがないデータとして入れられてしまいました。
そのため、このデータのURLを取得し、表示させようとしてもデータがないためか表示されません。
どなたか、原因と、正しいデータが入るようにする対処法をご教示ください。
該当のソースコード
SwiftUI
1import Foundation 2import FirebaseFirestore 3import FirebaseStorage 4 5func UpdateUser(userName: String, ..., imageData: Data, backImageData: Data, completion: @escaping(Bool) ->Void){ 6 7 let db = Firestore.firestore() 8 let storage = Storage.storage().reference() 9 10 if let userID = userID { 11 12//imageDataをstorageに格納 13 storage.child("userImage").child(userID).putData(imageData, metadata: nil) {(_, error) in 14 if error != nil { 15 print((error?.localizedDescription)!) 16 return 17 } 18 19//backDataをstorageに格納 20 storage.child("backImage").child(userID).putData(backImageData, metadata: nil) {(_, error) in 21 if error != nil { 22 print((error?.localizedDescription)!) 23 return 24 } 25 26//imageDataを格納したURLを取得 27 storage.child("userImage").child(userID).downloadURL{(url, error) in 28 if error != nil { 29 print((error?.localizedDescription)!) 30 return 31 } 32 33//backDataを格納したURLを取得 34 storage.child("backImage").child(userID).downloadURL{(url2, error) in 35 if error != nil { 36 print((error?.localizedDescription)!) 37 return 38 } 39 40//urlやその他情報をfirestoreに格納 41 db.collection("Users").document(userID).setData(["userName": userName,... , "userImageURL": "(url!)", "backURL": "(url2!)"], merge: true){(error) in 42 if error != nil{ 43 print((error?.localizedDescription)!) 44 return 45 } 46 47 completion(true) 48 UserDefaults.standard.set(userName, forKey: "UserName") 49 NotificationCenter.default.post(name: NSNotification.Name("StatusChange"), object: nil) 50 } 51 } 52 } 53 } 54} 55} 56} 57
あなたの回答
tips
プレビュー