강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

mvp_imp님의 프로필 이미지
mvp_imp

작성한 질문수

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

게시글 이미지 다운로드 - 2

이미지업로드관련 질문

해결된 질문

작성

·

317

0

writeActivity에서 storage로 키값이 전송이 된것은 확인이 되었는데 insideActivity에서 storage에 있는 key값이 안들어옵니다. 자세하게는 mountain.jpg랑 key를 직접 복붙한것은 되는데 key+".png"가 안됩니다. 그리고 toast로 실험해봤을 때

'key = intent.getStringExtra("key").toString()' 가 null이라고 출력이됩니다.아래는 insideActivity입니다.

package com.example.knunity.board

import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import com.bumptech.glide.Glide
import com.example.knunity.databinding.ActivityBoardInsideBinding
import com.google.android.gms.tasks.OnCompleteListener
import com.google.firebase.ktx.Firebase
import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.storage.ktx.storage

class BoardInsideActivity : AppCompatActivity() {
    private lateinit var key: String
    private val binding: ActivityBoardInsideBinding by lazy {
        ActivityBoardInsideBinding.inflate(layoutInflater)
    }
    lateinit var datas: BoardModel
    private val Tag = BoardInsideActivity::class.java.simpleName
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)

        // val title = intent.getStringArrayExtra("title").toString()
        //val contents = intent.getStringArrayExtra("contents").toString()
        //val time = intent.getStringArrayExtra("time").toString()
        //val uid = intent.getStringArrayExtra("uid").toString()

        datas = intent.getSerializableExtra("data") as BoardModel
        binding.titlePage.text = datas.title
        binding.contentPage.text = datas.contents
        binding.timePage.text = datas.time

        key = intent.getStringExtra("key").toString()
        Log.d("test", key)

        getImagefromFB(key)
        //  Log.d(Tag, title)
        // Log.d(Tag, contents)
        // Log.d(Tag, time)

    }

        private fun getImagefromFB(key: String) {

        val storageReference = Firebase.storage.reference.child(key+".png")
        val imageViewFromFB = binding.imagePage


        storageReference.downloadUrl.addOnCompleteListener(OnCompleteListener { task ->
            if (task.isSuccessful) {
                Glide.with(this)
                    .load(task.result)
                    .into(imageViewFromFB)
            } else {
                imageViewFromFB.isVisible = false
                Toast.makeText(this,key,Toast.LENGTH_SHORT).show()
            }

        })
    }
//    private fun getImageData(key: String) {
//        // Reference to an image file in Cloud Storage
//        val storageReference = Firebase.storage.reference.child(key + ".png")
//        // ImageView in your Activity
//        val imageViewFB = binding.imagePage
//
//
//
//        storageReference.downloadUrl.addOnCompleteListener(OnCompleteListener { task ->
//            if (task.isSuccessful) {
//                Glide.with(this)
//                    .load(task.result)
//                    .into(imageViewFB)
//            } else {
//                Toast.makeText(this, "FAIL TO LOAD", Toast.LENGTH_SHORT).show()
//            }
//        })
//
//    }
}

답변 1

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

안녕하세요

저.. 질문이 이해가 잘 안가는데

영상 플레이 타임 기준으로 좀 더 자세히 설명해주시겠어요?

mvp_imp님의 프로필 이미지
mvp_imp
질문자

간단하게 말씀드리면

key = intent.getStringExtra("key").toString()
이게 null로 찍혀서 스토리지에 있는 이미지 key값을 못불러오고 있는게 문제입니다.

 

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

질문주신 것을 보면 당연히 아시겠지만

intent에서 값을 받아오면 BoardInsideActivity 에서 값을 넘기고 있을텐데 넘기는 쪽에 값이 제대로 들어갔는지 확인해보시겠어요?

mvp_imp님의 프로필 이미지
mvp_imp

작성한 질문수

질문하기