質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Storage

Google Cloud Storageは、グーグル社が提供しているクラウドベースのデベロッパー・企業向けストレージサービス。可用性に優れ、APIで操作可能なため、データのアーカイブ保存やアプリケーションのコンテンツ提供など様々な用途に活用できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

【SwiftUI・Firebase】Storageからの画像取得時のエラー「Unexpected non-void return value in void function」が解決出来ない

Yuu
Yuu

総合スコア10

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Storage

Google Cloud Storageは、グーグル社が提供しているクラウドベースのデベロッパー・企業向けストレージサービス。可用性に優れ、APIで操作可能なため、データのアーカイブ保存やアプリケーションのコンテンツ提供など様々な用途に活用できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1回答

0リアクション

0クリップ

202閲覧

投稿2022/09/26 15:27

実現したいこと

以下の手順を実現したいと考えております。
① Firebase firestoreから、「タイトル・ラベル・画像のパスを取得」
② ①で取得した画像のパスから、Firebase Storageに格納されている画像をダウンロード

発生している問題・エラーメッセージ

Unexpected non-void return value in void function

※ return References.Referenceの行に対してエラーが表示されます。

該当のソースコード

ReferenceRepository.swift

import SwiftUI import FirebaseFirestore import FirebaseStorage final class ReferenceRepository: ObservableObject { private let db = Firestore.firestore() private let table = "references" private var retrievedImage = UIImage(named: "referenceExample") @Published var references: [References.Reference] = [] init() { getData() } func getData() { db.collection(table).getDocuments{ snapshot, error in // Check for errors if error == nil { // No errors if let snapshot = snapshot { // Update the list property in the main thread DispatchQueue.main.async { // Get all the documents and create Tangos self.references = snapshot.documents.map { data in // Specify the path let imagePath = data["url"] as! String // Firebase Storage への参照を取得 let storageRef = Storage.storage().reference() // Create a reference to the file you want to download let fileRef = storageRef.child(imagePath) fileRef.getData(maxSize: 5 * 1024 * 1024) { d, error in // Check for errors if error == nil && d != nil { // Create a UIImage let image = UIImage(data: d!) return References.Reference( id: data.documentID, title: data["title"] as? String ?? "", label: data["label"] as? String ?? "", image: image! ) } } } } } } else { // Handle the error } } }

Reference.swift

import SwiftUI import Firebase import FirebaseStorage import FirebaseFirestore import PhotosUI struct References { // Firestore上のデータ形式 struct Reference: Identifiable { var id: String var title: String var label: String var image: UIImage } }

補足情報

その他不足している情報がございましたら、ご教示ください。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Google Cloud Storage

Google Cloud Storageは、グーグル社が提供しているクラウドベースのデベロッパー・企業向けストレージサービス。可用性に優れ、APIで操作可能なため、データのアーカイブ保存やアプリケーションのコンテンツ提供など様々な用途に活用できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています