実現したいこと
以下の手順を実現したいと考えております。
① Firebase firestoreから、「タイトル・ラベル・画像のパスを取得」
② ①で取得した画像のパスから、Firebase Storageに格納されている画像をダウンロード
発生している問題・エラーメッセージ
Unexpected non-void return value in void function
※ return References.Referenceの行に対してエラーが表示されます。
該当のソースコード
ReferenceRepository.swift
1 2import SwiftUI 3import FirebaseFirestore 4import FirebaseStorage 5 6final class ReferenceRepository: ObservableObject { 7 private let db = Firestore.firestore() 8 private let table = "references" 9 10 private var retrievedImage = UIImage(named: "referenceExample") 11 12 @Published var references: [References.Reference] = [] 13 14 init() { 15 getData() 16 } 17 18 func getData() { 19 db.collection(table).getDocuments{ snapshot, error in 20 // Check for errors 21 if error == nil { 22 // No errors 23 24 if let snapshot = snapshot { 25 26 // Update the list property in the main thread 27 DispatchQueue.main.async { 28 // Get all the documents and create Tangos 29 self.references = snapshot.documents.map { data in 30 31 // Specify the path 32 let imagePath = data["url"] as! String 33 34 // Firebase Storage への参照を取得 35 let storageRef = Storage.storage().reference() 36 37 // Create a reference to the file you want to download 38 let fileRef = storageRef.child(imagePath) 39 40 41 fileRef.getData(maxSize: 5 * 1024 * 1024) { d, error in 42 // Check for errors 43 if error == nil && d != nil { 44 // Create a UIImage 45 let image = UIImage(data: d!) 46 47 return References.Reference( 48 id: data.documentID, 49 title: data["title"] as? String ?? "", 50 label: data["label"] as? String ?? "", 51 image: image! 52 ) 53 } 54 } 55 } 56 } 57 } 58 } else { 59 // Handle the error 60 } 61 } 62 }
Reference.swift
1import SwiftUI 2import Firebase 3import FirebaseStorage 4import FirebaseFirestore 5import PhotosUI 6 7struct References { 8 // Firestore上のデータ形式 9 struct Reference: Identifiable { 10 var id: String 11 var title: String 12 var label: String 13 var image: UIImage 14 } 15}
補足情報
その他不足している情報がございましたら、ご教示ください。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。