inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

안드로이드 스튜디오 게시글 이미지 업로드 유무

미해결

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

게시글을 올릴때 이미지를 업로드 하지 않으면, 안드로이드 스튜디오가 꺼집니다. 혹시 이미지를 업로드 하지 않아도 게시글을 작성하려면 코드를 어떻게 수정해야하나요? package com.example.healthcareapplication.fragments import android.app.Activity.RESULT_OK import android.content.Intent import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable import android.os.Bundle import android.provider.MediaStore import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.databinding.DataBindingUtil import androidx.navigation.fragment.findNavController import com.example.healthcareapplication.DATA.ContentData import com.example.healthcareapplication.DATA.ContentModel import com.example.healthcareapplication.R import com.example.healthcareapplication.databinding.FragmentCommunityWriteBinding import com.google.firebase.auth.FirebaseAuth import com.google.firebase.ktx.Firebase import com.google.firebase.storage.ktx.storage import java.io.ByteArrayOutputStream import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale class CommunityWriteFragment : Fragment() { private lateinit var binding: FragmentCommunityWriteBinding private lateinit var auth: FirebaseAuth override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { binding = DataBindingUtil.inflate(inflater, R.layout.fragment_community_write, container, false) val view = binding.root auth = FirebaseAuth.getInstance() binding.writeBtn.setOnClickListener { val title = binding.title.text.toString() val content = binding.content.text.toString() fetchContent(title, content) findNavController().navigate(R.id.action_communityWriteFragment_to_communityFragment) } binding.ImageBtn.setOnClickListener { val gallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI) startActivityForResult(gallery, 100) } return view } private fun fetchContent(title:String, content:String){ val userId = auth.currentUser?.uid ?: return val currentDateTime = Calendar.getInstance().time val dateFormat = SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.KOREA).format(currentDateTime) val key = ContentData.boardRef.push().key.toString() ContentData.boardRef .child(key) .setValue(ContentModel(title, content, userId, dateFormat)) Toast.makeText(requireContext(), "게시글 업로드 성공!", Toast.LENGTH_SHORT).show() ImageUpload(key) } private fun ImageUpload(key:String){ val storage = Firebase.storage val storageRef = storage.reference val mountainsRef = storageRef.child(key + ".png") val imageView = binding.imageArea // Get the data from an ImageView as bytes imageView.isDrawingCacheEnabled = true imageView.buildDrawingCache() val bitmap = (imageView.drawable as BitmapDrawable).bitmap val baos = ByteArrayOutputStream() bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos) val data = baos.toByteArray() var uploadTask = mountainsRef.putBytes(data) uploadTask.addOnFailureListener { // Handle unsuccessful uploads }.addOnSuccessListener { taskSnapshot -> // taskSnapshot.metadata contains file metadata such as size, content-type, etc. // ... } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if(resultCode == RESULT_OK && requestCode == 100){ val selectedImageUri = data?.data selectedImageUri?.let { uri -> binding.imageArea.setImageURI(uri) val layoutParams = binding.imageArea.layoutParams layoutParams.width = 300 // 원하는 너비 설정 layoutParams.height = 300 // 원하는 높이 설정 binding.imageArea.layoutParams = layoutParams } } } }

  • android
  • kotlin
  • firebase
류재열 댓글 1 좋아요 0 조회수 242

댓글 구현하기에서 막힙니다.(설정 화면이 다르게 뜹니다.)

해결됨

[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기

08:56에 뜨는 설정화면에는 Available Options, Document Properties 이렇게 2개만 뜨는데요. 지금은 구성 업뎃이 되었는지.. Available Options, Document Properties, Available Options 이렇게 3개가 뜹니다. 해당 옵션을 눌러보면 아무것도 안나오고 그대로 컨펌 눌러보면 'Current variable is not valid' 라는 문구가 뜨면서 닫히지 않습니다. 제가 놓친게 있나 싶어서 3번은 넘게 돌려봤는데요. 그건 아닌거 같아요.

  • flutter
  • firebase
  • no-code
  • flutterflow
ramcloud 댓글 1 좋아요 0 조회수 210

10 issues were found when checking AAR metadata:

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

파이어베이스 북마크 만들기 하면서 나오는 에러입니다. 1. Dependency 'androidx.credentials:credentials:1.2.0-rc01' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 2. Dependency 'androidx.credentials:credentials-play-services-auth:1.2.0-rc01' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 3. Dependency 'androidx.navigation:navigation-common:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 4. Dependency 'androidx.navigation:navigation-common-ktx:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 5. Dependency 'androidx.navigation:navigation-runtime:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 6. Dependency 'androidx.navigation:navigation-ui:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 7. Dependency 'androidx.navigation:navigation-runtime-ktx:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 8. Dependency 'androidx.navigation:navigation-ui-ktx:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 9. Dependency 'androidx.navigation:navigation-fragment-ktx:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 10. Dependency 'androidx.navigation:navigation-fragment:2.7.5' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android Gradle plugin 8.0.0 is 33. Recommended action: Update this project's version of the Android Gradle plugin to one that supports 34, then update this project to use compileSdk of at least 34. Note that updating a library or application's compileSdk (which allows newer APIs to be used) can be done separately from updating targetSdk (which opts the app in to new runtime behavior) and minSdk (which determines which devices the app can be installed on). 대체 어떤 부분을 봐야 할까요...

  • android
  • kotlin
  • firebase
cloverj0 댓글 2 좋아요 0 조회수 461

섹션 1 CardStackView의 Implement members 질문있습니다.

미해결

[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)

7:16 Implement members를 하려고 하는데 어떻게 해야되나요? 여담으로 아직 섹션 1 끝내지도 않았는데 옛날 버전이라 그런지 진도 나가기가 너무 힘들어요... 강의 최신 버전으로 업데이트는 안되나요? 프로젝트 생성부터 Gradle 추가까지 지금 7분밖에 못 들었는데 두시간을 넘게 찾고있는거 같습니다.

  • android
  • kotlin
  • firebase
xodnr9012 댓글 1 좋아요 0 조회수 260

riverpod으로 상태관리하기

해결됨

Flutter로 SNS 앱 만들기

안녕하세요 선생님, 강의 흥미롭게 잘 듣고 있습니다. 저는 Provider에 대한 지식이 없어 제가 알고있던 riverpod을 사용하여 프로젝트를 진행하고 있었습니다. 그런데 이 강의의 update함수를 override하여 인증상태를 관리하는 부분에서 막혔습니다. riverpod의 StateNotifer에는 해당 기능이 없더라구요.. (FirebaseAuth.instance.userChanges()에 따라서 state를 변경시키는 부분.) 혹시 만약 riverpod을 사용한다면 어떤 방향으로 코딩을해야할까요? 답변주시면 감사하겠습니다!

  • flutter
  • android
  • firebase
  • dart
kimmeanseo01 댓글 1 좋아요 0 조회수 325

Glide gradle implementation 관련 질문

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요. Glide를 사용하려다 gradle 문법이 달라서 질문 드립니다. 제가 쓰는 안드로이드 스튜디오는 Iguana 2023.2.1 입니다 저의 소스는 implementation(libs....) 이런 식인데, 가이드는 implementation 'com.github.bumptech.glide:glide:4.16.0' 이렇습니다. 어떻게 하면 될까요? 관련 내용을 알려면 어떻게 어디를 찾아 보면 될까요?

  • android
  • kotlin
  • firebase
댓글 2 좋아요 0 조회수 459

테스트 모드 구글 Oauth 도메인 추가 방법 발견

해결됨

[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기

테스트 모드로 앱을 켠다. 개발자 모드로 들어간다. 콘솔에 보면 다음과 같은 형태의 도메인이 노출되어 있다: ' ff-debug-service-frontend-ygxkweukma-uc.a.run.app ' 노출된 도메인을 firebase->authentication->settings->승인된 도메인에 추가한다. 칭찬해주시죠 강사님!

  • flutter
  • firebase
  • no-code
  • flutterflow
Yoongiable 댓글 2 좋아요 1 조회수 402

섹션7 게시글목록화면 _게시글정보 가져오기

해결됨

Flutter로 SNS 앱 만들기

섹션7 게시글목록화면 _게시글정보 가져오기에서 상태관리 하고 있는 게시글의 데이터 출력 메세지가 달라서요.. 강의 화면과 저랑 달리 나와서요 강의사진 제 컴퓨터사진 logger가 안 먹고 있는거죠.. 압축파일 보냈어요..

  • flutter
  • android
  • firebase
  • dart
댓글 4 좋아요 0 조회수 391

질문있습니다.

미해결

처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)

- 강의 Row,Coloum 기본과 MaterialApp듣고 있습니다 똑같이 짯는데 왜 색깔이 안들어갈까요? 그리고 글자가 가운데로 정렬은 코드에 없는데 왜 되는거죠??

  • flutter
  • firebase
  • dart
  • frontend
  • firestore
이근삼 댓글 2 좋아요 0 조회수 265

섹션8번 signOut

미해결

Flutter로 SNS 앱 만들기

강의에서 signOut을 추가하여서 추가를 해보니 오류가 뜹니다. await FirebaseAuth.instance.signOut();으로 바꿨을때는 문제가 없습니다.

  • flutter
  • android
  • firebase
  • dart
gimseongcheol33 댓글 2 좋아요 0 조회수 260

FirebaseError: auth/already-initialized

미해결

핸즈온 리액트 네이티브

안녕하세요, 8강 끝부분을 따라가고 있는 중입니다. 프로젝트에서 npm start 해놓고 expo go 어플로 실시간으로 확인하면서 작업을 진행 중인데요, 새로고침 할 때(r눌러서)는 괜찮은데, VS Code에서 저장을 해서 자동으로 리랜더링 될때마다 아래와 같은 에러 메세지가 콘솔 창에 나타납니다. [FirebaseError: Firebase: Error (auth/already-initialized).] 특별히 뭐가 안되거나 하는건 아닌데... r 눌러서 아예 앱을 새로고침하면 뜨지않습니다. 어디선가 중복으로 초기화하고있다는 뜻일까요? firebase.js 파일 코드 첨부합니다! 추가로 보여드려야 하는 다른 코드가 있다면 말씀 부탁드립니다. screen 부분은 제가 다르게 가져가고 있는데 이 외에 기능부분에 대한 것들은 강의와 동일하게 진행 중입니다. firebase.js import { initializeApp } from 'firebase/app'; import { firebaseConfig } from '../../env'; import { getReactNativePersistence, initializeAuth } from 'firebase/auth'; import AsyncStorage from '@react-native-async-storage/async-storage'; export const initFirebase = () => { // Initialize Firebase try { const app = initializeApp(firebaseConfig); initializeAuth(app, { persistence: getReactNativePersistence(AsyncStorage), }); return app; } catch (e) { // eslint-disable-next-line no-console console.error(e); } };

  • react-native
  • firebase
Veronica 댓글 2 좋아요 0 조회수 393

xml 파일 디자인 부분

미해결

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

안녕하세요 선생님 섹션 4 - 팁 페이지 만들기 - 첫번째 강의(레이아웃 설정 및 아이콘 넣기)를 수강중입니다. 제가 중간에 어디 부분을 놓쳐서 이해를 못하고 있는지 잘 모르겠습니다. 4:04 부분에 보이는 꿀팁화면(fragment_tip.xml) 디자인 (안드로이드 스튜디오 우측 그림)에는 상단에 내용 부분(사진 3개)만 있고 지붕 디자인이 없는데 애뮬레이터를 실행하는 부분(4:17) 에서는 지붕 디자인(자취생으로 살아남기 글자랑 그림, 우측에 막대기 3개 표시)이 나오는데 윗부분 디자인은 어디서 가지고 오는 건가요? main xml에서 지붕부분을 만든 것은 알겠는데 꿀팁 tip xml 에서는 지붕에 대한 코드가 없습니다 코드상으로는 지붕에 대한 코드가 없는데 애뮬레이터를 실행하면 지붕이 나오게 되는데 왜 그런 것인지 모르겠습니다. 아래는 애뮬레이터 실행한 부분입니다.

  • android
  • kotlin
  • firebase
댓글 1 좋아요 0 조회수 247

에뮬레이터 실행 에러

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요. 강의를 듣다가 에뮬레이터를 실행하려는데 실행이 되지 않습니다. 해결방안을 찾아보다 SDK Tools를 보는데 필수 도구들 중에 intel x86 Emulator (HAXM installer)가 없는 것을 알게 되었습니다. 이게 없어서 에뮬레이터 실행이 안 되는 것일까요? 해결방안을 아무리 찾아도 모르겠습니다... 위의 사진이 계속해서 뜨는 에러입니다. 기존에 이미 있는 에뮬레이터 말고 다른 것을 실행시켜도 같은 에러가 뜹니다.

  • android
  • kotlin
  • firebase
장민정 댓글 2 좋아요 0 조회수 563

파이어베이스 익명로그인 - 코드는 소문자인데 대문자로 표시되는 이유

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요 강사님 다이어트 메모앱에서- 2번째 강의인 “파이어베이스 익명로그인” 7:13 부분을 듣고 있습니다. 강의 흐름상 중요한 건 아니지만 궁금해서 여쭤봅니다 코드에서 버튼을 만들고 버튼의 텍스트를 소문자로 login 이라고 입력하셨는데 어떻게 하면 오른쪽 split 탭(파란화면) 에서는 글씨가 대문자로 LOGIN 이라고 뜨는 건거가요? 저는 오른쪽 파란화면도 당연히 소문자로 떠서요 아래 화면은 강의를 캡처한 사진입니다

  • android
  • kotlin
  • firebase
댓글 1 좋아요 0 조회수 215

구글 플레이 콘솔의 주문관리 데이터를 가져오지 못합니다.

미해결

현재 배포되어 있는 앱이 있는데 결제를 할 때마다 파이어베이스에 추가 되게끔 firebase function을 설정해놨습니다. 기존에는 별 문제 없이 잘 됐다가 play-console 계정을 다른 계정으로 소유권 이전을 한 이후로 The current user has insufficient permissions to perform the requested operation. 라는 메시지와 함께 추가가 되질 않습니다. firebase function에서도 play console 계정을 업데이트 해서 배포를 했고, gcp에서도 새 계정의 IAM을 최상으로 올려놓은거 같은데 계속 같은 이유로 데이터를 가져오지 못하고 있습니다. 제가 어딜 놓치고 있는걸까요?

  • google
  • google-play-console
  • firebase
  • firebasefunction
빙수왕 댓글 1 좋아요 0 조회수 384

엠티프로젝트 만드는 것 관련해서 질문 있습니다.

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안녕하세요? 오랜만에 수업을 들으며 프로그램을 켰는데 예전과 달리 이런 창이 떠서요, 수업에 나오는 엠티프로젝트를 만들려면 어떻게 설정해야 하는지 알려주시면 감사하겠습니다. 감사합니다.

  • android
  • kotlin
  • firebase
댓글 1 좋아요 0 조회수 219

트와이스 앱 - splash 화면 manifest 파일 수정

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

트와이스 앱 만들기- 강의 소개 및 스플래시 화면 4분 33초를 듣고 있습니다. mainfest 파일 수정하는 과정에서 계속 에러가 나는데 어떻게 해야 하나요? 검색해봐도 해결이 안되어서 질문 드려요 앞에 첨부해주신 자료에 따라 exported를 true로 하고, intent filter를 splash 안에 들어가게 했는데 무엇이 문제인지 모르겠습니다. 다음처럼 에러가 나요 Unable to find Gradle tasks to build: [:app]. Build mode: ASSEMBLE. Tests: None

  • android
  • kotlin
  • firebase
댓글 1 좋아요 0 조회수 304

avd 띄웠을 때 파일명이 안 나와요

미해결

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

섹션 0 . 강의소개 및 개발환경 세팅에서 4번째 강의 "안드로이드 스튜디오 살펴보기" 를 듣고있습니다. 영상 13분 28초 강의에서는 myfirstfile 이라는 파일명이 avd에 뜨는데 , 저는 왜 안 뜨는건가요? ( 저도 파일명을 똑같이 myfirstfile로 앞에서 설정했었는데 아예 이름이 보이질 않습니다)

  • android
  • kotlin
  • firebase
댓글 1 좋아요 0 조회수 243

onSnapshot 함수 unsubscribe 에 대해서 질문이 있습니다

미해결

제가 궁금한건 다른 페이지에 있을 때에도 스냅샷 함수를 가동시켜 비용이 계속해서 발생하는 것을 막기위해 온스냅샷 함수를 unsubscribe, 구독취소하는 코드인데요 어째서 제가 읽기에는 unsubscribe = ~ 온스냅샷함수 ~ . . . return () => unsubscribe함수 실행 useEffect cleanup기능으로 언마운트시 온스냅샷함수를 정지하려는데 다시 온스냅샷함수를 실행? 제가 어떻게 잘못 이해하는건지 모르겠어요 .. ㅠㅠ export default function Timeline() { const [tweets, setTweet] = useState<ITweet[]>([]); let unsubscribe: Unsubscribe | null = null; const fetchTweets = async () => { const tweetsQuery = query( collection(db, "tweets"), orderBy("createdAt", "desc"), limit(25) ); unsubscribe = await onSnapshot(tweetsQuery, (snapshot) => { const tweets = snapshot.docs.map((doc) => { const { tweet, createdAt, userId, username, photo } = doc.data(); return { tweet, createdAt, userId, username, photo, id: doc.id, }; }); setTweet(tweets); }); }; useEffect(() => { fetchTweets(); return () => { unsubscribe && unsubscribe(); }; }, []); }

  • firebase
  • typescript
  • react
  • onsnapshot
  • unsubscribe
  • useEffect
  • cleanup
김수환 댓글 1 좋아요 0 조회수 393

인기 태그

인프런 TOP Writers

주간 인기글