第21回|Firebase Storage:画像アップロードと表示[AI]


⚙️ 準備と環境設定

Firebase Storageを使うには、まずFirebaseプロジェクトの作成とAndroid Studio Otterとの連携が必要です。Storage機能を有効化し、Androidアプリに google-services.json を追加します。

Android Studio Otter
Android Studio Otter

1. Firebase ConsoleでStorageを有効化

Firebase Consoleを開き、対象プロジェクトで「Storage」を選択し、有効化します。セキュリティルールも初期設定として「読み書き可」にしておくと、開発時にスムーズです。実運用では適切な認証ルールを設定してください。

2. Gradle依存関係の追加

dependencies {
    implementation platform('com.google.firebase:firebase-bom:34.3.0')
    implementation 'com.google.firebase:firebase-storage-ktx'
    implementation 'io.coil-kt:coil-compose:2.4.0'
}

説明:Firebase StorageのKTXライブラリと、Composeで画像を簡単に表示するためにCoil Composeを導入します。


🤖 Geminiによる支援の使い方

Gemini AIを活用すると、Firebase Storageの画像アップロードやダウンロードのCompose実装例を自動生成できます。「ComposeでFirebase Storageに画像をアップロードし、表示するサンプルコードを生成」と入力するだけで、ボタンや画像表示処理までのKotlinコードを生成可能です。初心者でもスムーズにUIとバックエンドを連携できます。


💡 Kotlinでの実装例

以下に、Composeを用いたFirebase Storageでの画像アップロードと表示の例を示します。

1. 画像選択とアップロードボタン

@Composable
fun UploadImageButton(onImageSelected: (Uri) -> Unit) {
    val context = LocalContext.current
    val launcher = rememberLauncherForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? ->
        uri?.let { onImageSelected(it) }
    }

    Button(
        onClick = { launcher.launch("image/*") },
        modifier = Modifier.fillMaxWidth().padding(16.dp)
    ) {
        Text(text = "画像を選択してアップロード")
    }
}

説明:ユーザーが端末から画像を選択すると、Uriとしてコールバックが返ります。ComposeのButtonで簡単にUIを作成しています。

2. Firebase Storageへのアップロード

fun uploadImageToFirebase(uri: Uri, onSuccess: (String) -> Unit, onFailure: (Exception) -> Unit) {
    val storageRef = Firebase.storage.reference
    val imageRef = storageRef.child("images/${System.currentTimeMillis()}.jpg")

    imageRef.putFile(uri)
        .addOnSuccessListener { taskSnapshot ->
            imageRef.downloadUrl.addOnSuccessListener { downloadUri ->
                onSuccess(downloadUri.toString())
            }
        }
        .addOnFailureListener { exception ->
            onFailure(exception)
        }
}

説明:選択した画像をStorageの「images」フォルダにアップロードします。成功時にはダウンロードURLを取得し、Composeで表示可能にします。

3. Composeでの画像表示

@Composable
fun DisplayImageFromUrl(imageUrl: String) {
    AsyncImage(
        model = imageUrl,
        contentDescription = "Uploaded Image",
        modifier = Modifier
            .fillMaxWidth()
            .height(200.dp)
            .padding(8.dp)
    )
}

説明:Coil Composeの AsyncImage を使用して、Firebase Storageから取得した画像URLを簡単に画面上に表示できます。


🧩 FirebaseまたはCloudとの連携

Firebase StorageとComposeアプリを連携する際のポイントは以下です:

  1. google-services.json の追加:プロジェクトの app/ ディレクトリに配置
  2. Gradle設定:Firebase Storage KTXとCoil Composeを依存関係に追加
  3. Storage参照の作成:アップロード先のフォルダやファイル名を指定
  4. ActivityResultLauncherの利用:Composeでユーザーが選択した画像Uriを取得
  5. 画像URLの取得:アップロード後、ダウンロードURLをComposeで表示
  6. セキュリティルール:開発時は読み書き可に設定、運用時は認証ユーザーのみアクセス可能に変更

📘 まとめ

第21回では、Firebase Storageを使った画像のアップロードとCompose画面での表示方法を解説しました。Gemini AIを活用することで、UI作成やアップロード処理のKotlinコードを効率的に生成可能です。これにより、初心者でもクラウドストレージを活用したアプリ開発がスムーズに進められます。


🤖Android開発(Otter)[AI]Android Studio Otter × Gemini × Firebase × Google Cloud 開発支援ブログ一覧 Android Studio Otter 🩵【第1部】導入編:Android Studio Otterの準備と基本操作(1〜5回) ・ 第1回|A…
続きを読む
 zesys.net
🤖Android開発(Otter)[AI]


「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」

広告

迷子探偵やもやも [AI]

探偵はいつも迷子ですw

シェアする