怠慢プログラマーの備忘録

怠慢でナマケモノなプログラマーの備忘録です。

【Kotlin】Firebase Cloud Strageに画像をアップロードする[備忘録]

Firebase Cloud Storageに画像をアップロードした時の備忘録

app/build.gradle

    compile 'com.google.firebase:firebase-storage:16.0.1'

を追加。

FirebaseStorage+ext

fun FirebaseStorage.uploadImage(imageView: ImageView, referensePath: String): UploadTask {
    imageView.isDrawingCacheEnabled = true
    imageView.buildDrawingCache()
    val bitmap = (imageView.getDrawable() as BitmapDrawable).bitmap
    val byteArrayOutputStream = ByteArrayOutputStream()
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream)
    val data = byteArrayOutputStream.toByteArray()
    val ref = getReference().child(referensePath)
    return ref.putBytes(data)
}

Adapter内

       holder.submitButton.setOnClickListener {
            this.cameraHolder?.let {
                FirebaseStorage
                        .getInstance()
                        .uploadImage(it.cameraImageView, "images/test.jpg")
                        .addOnSuccessListener ({
                            Toast.makeText(this.context, "保存しました", Toast.LENGTH_SHORT).show()
                        }).addOnFailureListener({
                            Toast.makeText(this.context, "保存に失敗しました", Toast.LENGTH_SHORT).show()
                        })
            }
        }

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

黒帯エンジニアが教えるプロの技術 Android開発の教科書(ヤフー黒帯シリーズ)

黒帯エンジニアが教えるプロの技術 Android開発の教科書(ヤフー黒帯シリーズ)