묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Flutter로 SNS 앱 만들기
검색하는거는 어떻게 하는겁니까
저는 안보이네요..
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
강의 잘듣고 디테일을 좀 수정해보고 싶은게 있어서 힌트좀 주시면 감사하겠습니다
1. ContentListActivity 관련해서 응용해보고 싶은게 있습니다! val database = Firebase.database val category = intent.getStringExtra("category") // 받은 카테고리 val 값 when (category) { "category1" -> { myRef = database.getReference("contents") } "category2" -> { myRef = database.getReference("contents2") } "category3" -> { myRef = database.getReference("contents3") } "category4" -> { myRef = database.getReference("contents4") } "category5" -> { myRef = database.getReference("contents5") } "category6" -> { myRef = database.getReference("contents6") } "category7" -> { myRef = database.getReference("contents7") } "category8" -> { myRef = database.getReference("contents8") } }이런식으로 강의내용에 추가해서 카테고리를 여러개 추가했는데요tip의 category1 이미지가 ALL입니다. 그래서 ALL에는 category2 부터 category8까지의 이미지가 모두 랜더링 됐으면 합니다. getReference에는 복수의 path를 넣을수 없게끔 되어있고 독스에 가서 읽어봐도 관련된 내용은 찾지못해서 어떻게 하는게 좋을지 잘 모르겠어서 글을 남깁니다.2. 댓글쓸때 title, time 만 랜더링되게끔 만들고싶은데 content도 같이 랜더링됩니다. 이걸 어떻게 해야 삭제할수있을까요?
-
해결됨[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
섹션2.1부 프로필 완성하기 selected reference to update 에 authenticated User 에 설정 질문
"섹션2.1부 프로필 완성하기" 수강중아래 이미지와 같이 selected reference to update 에 authenticated User 에 설정을 하려하는데알려준 항목이 없고, 선택이 되지 않습니다. 다른 source를 찾아봐도 알려준 항목이 없는데 왜 그런걸까요?이부분 설정이 안되어서 계속 에러로 남아서 run도 되지 않습니다. 어떤부분을 봐야할까요?
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
변수 초기화 위치
안녕하세요 강의도중 질문이 있습니다 loginActivity에서 login버튼 클릭시setOnClickListener안에서 email과 password값을 선언 및 초기화를 하면 정상적으로 화면 전환이되는데 setOnClickListener 윗줄에서 email과 password를 선언 및 초기화한 후에 해당 변수값을 가지고 auth.signInWithEmailAndPassword(email, password)이렇게 매개변수에 넣어주면 mainActivity로 이동하지않고 introActivity로 이동하더라구요 제가볼땐 변수의 초기화 위치가 클릭리스너 안이냐 바깥이냐는 크게 영향이 없을것같은데.. 이유가 뭔지 알수있을가요??
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
firebase SDK를 추가를 위한 Classpath 코드구문
파이어베이스를 안드로이드와 연동하는 과정중에 firebase SDK를 추가 하고자합니다. 하지만 강의에서 나온 firebase SDK를 추가를 위한 Classpath 코드구문이 없습니다..이럴땐 어떻게 해야 하나요??
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Volar Deprecated
안녕하세요. 오랜만에 들어서 다시 처음부터 듣고있는데요 Volar 관련된 플러그인이 다 Deprecated되었다고 합니다. 대체할 게 있을까요?
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
firebase auth
auth객체 생성하고 createUserWithEmailAndPassword 메소드 실행할때 에러가 발생했습니다에러현상은 intro layout에서 회원가입 클릭시 앱이 팅기면서 꺼지고로그를 살펴보면 FATAL EXCEPTION: main Process: com.example.datingapp, PID: 18621 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.datingapp/com.example.datingapp.auth.SignUpActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.datingapp. Make sure to call FirebaseApp.initializeApp(Context) first.at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4111) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4277) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loopOnce(Looper.java:226)at android.os.Looper.loop(Looper.java:313)at android.app.ActivityThread.main(ActivityThread.java:8751)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this processcom.example.datingapp. Make sure to call FirebaseApp.initializeApp(Context) first.at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:179)at com.google.firebase.auth.FirebaseAuth.getInstance(com.google.firebase:firebase-auth@@22.1.2:1)at com.google.firebase.auth.ktx.AuthKt.getAuth(com.google.firebase:firebase-auth-ktx@@22.1.2:8)at com.example.datingapp.auth.SignUpActivity.onCreate(SignUpActivity.kt:23)at android.app.Activity.performCreate(Activity.java:8290)at android.app.Activity.performCreate(Activity.java:8270)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4085)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4277) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8751) at java.lang.reflect.Method.invoke(NativeMethod) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) 이렇게 발생하고 있습니다 전체코드는 https://github.com/jsistop16/dating-app여기에 push해놓았습니다
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
splash manifest 설정시 에러
안녕하세요 e: This version (1.4.4) of the Compose Compiler requires Kotlin version 1.8.10 but you appear to be using Kotlin version 1.9.0 which is not known to be compatible. Please consult the Compose-Kotlin compatibility map located at https://developer.android.com/jetpack/androidx/releases/compose-kotlin to choose a compatible version pair (or suppressKotlinVersionCompatibilityCheck but don't say I didn't warn you!). 스플래시 화면 만들고 컴파일 돌리면 이런 에러가 발생하는데구글링해서 build.gradle에서 버전을 수정해봐도 계속 같은 에러가 발생합니다...
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
디바이스 에뮬레이터 질문
안녕하세요 bts 앱 듣고있는데 디바이스 에뮬레이터 실행하여 run app을 누르면 Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.res.ParseLibraryResourcesTask$ParseResourcesRunnable 가 나오면서 진행이 되지 않아 질문드립니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
디데이어플에서 날짜계산이 안됩니다..
실행을 했는데 앱 꺼짐없이 실행은 잘되나 마지막 강의까지 듣고 코드를 수정했는데갑자기 날짜 계산값이 다 0으로 출력됩니다.어딘가 오류가 있는 듯 한데.. 못 찾겠네요. ㅠㅠ package com.sunny.dday import android.app.DatePickerDialog import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.DatePicker import android.widget.TextClock import android.widget.TextView import androidx.annotation.RequiresApi import java.time.Month import java.util.Calendar import java.util.GregorianCalendar import java.util.concurrent.TimeUnit class MainActivity : AppCompatActivity() { @RequiresApi(Build.VERSION_CODES.N) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val startButton = findViewById<Button>(R.id.startBtn) val endButton = findViewById<Button>(R.id.endBtn) var startDate = "" var endDate = "" val calendar_start = Calendar.getInstance() val calendar_end = Calendar.getInstance() startButton.setOnClickListener { val today = GregorianCalendar() val year = today.get(Calendar.YEAR) val month = today.get(Calendar.MONTH) val day = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener { override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { // startDate = "${year} + ${month+1} + ${dayofMonth}" startDate = year.toString() + (month + 1).toString() + dayOfMonth.toString() calendar_start.set(year, month + 1, dayOfMonth) Log.d("day : ", startDate) } }, year, month, day) dlg.show() } endButton.setOnClickListener { val today = GregorianCalendar() val year = today.get(Calendar.YEAR) val month = today.get(Calendar.MONTH) val day = today.get(Calendar.DATE) val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener { override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { // endDate = "${year} + ${month+1} + ${dayofMonth}" endDate = year.toString() + (month + 1).toString() + dayOfMonth.toString() calendar_end.set(year, month + 1, dayOfMonth) val finalDate = TimeUnit.MICROSECONDS.toDays(calendar_end.timeInMillis - calendar_start.timeInMillis) Log.d("day : ", endDate) val textArea = findViewById<TextView>(R.id.finalDate) textArea.setText(finalDate.toString()) Log.d("finalday : ", finalDate.toString()) } }, year, month, day) dlg.show() } } }
-
미해결너네 백엔드 하고 싶은 거 있으면 얼마든지 해 난 괜찮어 왜냐면 나는 파이어베이스가 있어
onAuthStateChanged 가 가지는 장점에 대해
기존의 렌더링 -> 통신 순으로 진행되던 프로세스를통신 -> 렌더링 순으로 바꿔준다고 하는데그러면 렌더링 -> 통신 -> 변화된 상태 업데이트 였던 것을통신 -> 변화된 상태 업데이트 로 일종의 렌더링 최적화를 시켜준다는 뜻으로 이해해도 될까요?
-
해결됨Flutter로 SNS 앱 만들기
삼항연산자에 대한 질문
안녕하세요 . 프로필 사진에서 삼항연산자를 아래처럼 사용하면 코드가 더 효율적일꺼라 생각했는데 에러가 발생합니다.아래처럼 사용하는 건 틀린건가요? CircleAvatar( radius: 64, backgroundImage: _image == null ? AssetImage('assets/images/profile.png') : MemoryImage(_image!),)
-
미해결Flutter로 SNS 앱 만들기
섹션8번 signOut
강의에서 signOut을 추가하여서 추가를 해보니 오류가 뜹니다. await FirebaseAuth.instance.signOut();으로 바꿨을때는 문제가 없습니다.
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
Notification 구현시 컴파일에러
class MainActivity : AppCompatActivity() { lateinit var cardStackAdapter: CardStackAdapter lateinit var manager : CardStackLayoutManager private val TAG = "MainActivity" private val usersDataList = mutableListOf<UserDataModel>() private var userCount = 0 private val uid =FireBaseAuthUtils.getUid() private lateinit var currentUserGender : String private val REQUEST_CODE = 123 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val isTiramisuOrHigher = Build.VERSION.SDK_INT>= Build.VERSION_CODES.TIRAMISU val notificationPermission = Manifest.permission.POST_NOTIFICATIONS var hasNotificationPermission = if (isTiramisuOrHigher) ContextCompat.checkSelfPermission(this,notificationPermission) == PackageManager.PERMISSION_GRANTED else true val launcher = registerForActivityResult(ActivityResultContracts.RequestPermission()){ hasNotificationPermission = it } if(!hasNotificationPermission) { launcher.launch(notificationPermission) } val setting = findViewById<ImageView>(R.id.settingIcon) setting.setOnClickListener{ // val auth = Firebase.auth // auth.signOut() // val intent = Intent(this,SettingActivity::class.java) startActivity(intent) } val cardStackView = findViewById<CardStackView>(R.id.cardStackView) manager = CardStackLayoutManager(baseContext,object : CardStackListener{ override fun onCardDragging(direction: Direction?, ratio: Float) { } override fun onCardSwiped(direction: Direction?) { if(direction == Direction.Right){ userLikeOtherUser(uid,usersDataList[userCount].uid.toString()) } if(direction == Direction.Left){ } userCount = userCount + 1 if(userCount == usersDataList.count()){ getUserDataList(currentUserGender) Toast.makeText(this@MainActivity,"유저 리스트를 새롭게 받아옵니다.",Toast.LENGTH_SHORT).show() } } override fun onCardRewound() { } override fun onCardCanceled() { } override fun onCardAppeared(view: View?, position: Int) { } override fun onCardDisappeared(view: View?, position: Int) { } }) cardStackAdapter = CardStackAdapter(baseContext,usersDataList) cardStackView.layoutManager = manager cardStackView.adapter = cardStackAdapter // getUserDataList() getMyUserData() } private fun getMyUserData(){ val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { val data = dataSnapshot.getValue(UserDataModel::class.java) Log.d(TAG,data.toString()) currentUserGender = data?.gender.toString() getUserDataList(currentUserGender) } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()) } } FireBaseRef.userInfoRef.child(uid).addValueEventListener(postListener) } private fun getUserDataList(currentUserGender : String){ val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // val post = dataSnapshot.getValue<Post>() for(dataModel in dataSnapshot.children){ val user = dataModel.getValue(UserDataModel::class.java) if(!user!!.gender.toString().equals(currentUserGender)){ usersDataList.add(user!!) } } cardStackAdapter.notifyDataSetChanged() } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()) } } FireBaseRef.userInfoRef.addValueEventListener(postListener) } private fun userLikeOtherUser(myUid : String, otherUid : String) { FireBaseRef.userLikeRef.child(myUid).child(otherUid).setValue("true") getOtherUserLikeList(otherUid) } private fun getOtherUserLikeList(otherUid : String){ val postListener = object : ValueEventListener { override fun onDataChange(dataSnapshot: DataSnapshot) { // 여기 리스트에서 나의 UID가 있나 확인 필요 for(dataModel in dataSnapshot.children){ val likeUserKey = dataModel.key.toString() if(likeUserKey.equals(uid)){ Toast.makeText(this@MainActivity,"매칭완료",Toast.LENGTH_SHORT).show() createNotificationChannel() sendNotification() } } } override fun onCancelled(databaseError: DatabaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()) } } FireBaseRef.userLikeRef.child(otherUid).addValueEventListener(postListener) } // 알림 private fun createNotificationChannel() { // Create the NotificationChannel, but only on API 26+ because // the NotificationChannel class is not in the Support Library. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // 채널 이름 val name = "name" val descriptionText = "description" val importance = NotificationManager.IMPORTANCE_DEFAULT val channel = NotificationChannel("TestChannel", name, importance).apply { description = descriptionText } // Register the channel with the system. val notificationManager: NotificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(channel) } } private fun sendNotification(){ var builder = NotificationCompat.Builder(this, "TestChannel") .setSmallIcon(R.drawable.ic_launcher_background) .setContentTitle("My notification") .setContentText("Hello World!") .setPriority(NotificationCompat.PRIORITY_DEFAULT) .setCategory(NotificationCompat.CATEGORY_MESSAGE) with(NotificationManagerCompat.from(this)){ notify(123,builder.build()) } } }안녕하세요. 알림기능 구현하는데notify(123,builder.build()) 위 부분에서 Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException 이런 에러가 아직도 발생하고있는데 어떻게 해결할수 있을지 자세한 답변을 부탁드려도될까요? 구글링 해봤는데 명확히 어떤코드 입력해서 컴파일에러를 지울 수 있을지 모르겠습니다. 빠른답변 부탁드리겠습니다.
-
미해결핸즈온 리액트 네이티브
FirebaseError: auth/already-initialized
안녕하세요, 8강 끝부분을 따라가고 있는 중입니다. 프로젝트에서 npm start 해놓고 expo go 어플로 실시간으로 확인하면서 작업을 진행 중인데요, 새로고침 할 때(r눌러서)는 괜찮은데, VS Code에서 저장을 해서 자동으로 리랜더링 될때마다 아래와 같은 에러 메세지가 콘솔 창에 나타납니다.[FirebaseError: Firebase: Error (auth/already-initialized).] 특별히 뭐가 안되거나 하는건 아닌데... r 눌러서 아예 앱을 새로고침하면 뜨지않습니다. 어디선가 중복으로 초기화하고있다는 뜻일까요? firebase.js 파일 코드 첨부합니다! 추가로 보여드려야 하는 다른 코드가 있다면 말씀 부탁드립니다. screen 부분은 제가 다르게 가져가고 있는데 이 외에 기능부분에 대한 것들은 강의와 동일하게 진행 중입니다. firebase.jsimport { 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); } };
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
호스팅 문제 관련 질문 있습니다.
안녕하세요!! 강의를 보며 호스팅까지 진행하였습니다. 이후 설정된 url로 이동하니 이화면으로 계속 이동이 되는데 무슨 오류가 있는건지 어려워서요.. 혹시 해결방법이 있을까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
firebase 데이터 불러오기에서 날짜가 안 뜹니다..
firebase 데이터 불러오기에서 날짜가 안 떠요분명 데이터는 date, memo 따로 잘 입력이 되는데출력을 하면 아래와 같이 됩니다..혹시 뭐가 문제일까요? [입력] [출력] [Adapter 코드]package com.sunny.diet_memoimport android.view.LayoutInflaterimport android.view.Viewimport android.view.ViewGroupimport android.widget.BaseAdapterimport android.widget.TextViewclass ListViewAdapter(val List : MutableList<DataModel>) : BaseAdapter(){override fun getCount(): Int {return List.size }override fun getItem(position: Int): Any {return List[position]}override fun getItemId(position: Int): Long {return position.toLong()}override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {var convertView =convertViewif(convertView == null){convertView = LayoutInflater.from(parent?.context).inflate(R.layout.listview_item, parent, false)}val date = convertView?.findViewById<TextView>(R.id. listViewDateArea)val memo = convertView?.findViewById<TextView>(R.id. listViewMemoArea)date!!.text = List[position].date date!!.text = List[position].memo return convertView!!}}
-
해결됨Flutter로 SNS 앱 만들기
섹션 8 게시물 사라짐, 유저 정보 가져오기 X
강사님 강의 잘 듣고 있습니다. logger.d를 사용해서 파이어베이스에 feeds를 등록한 이후 갑자기 게시물에 있는 내용들이 다 사라졌습니다. 파이어베이스에서는 게시물이 존재하는데 스크린으로는 다 사라졌습니다. 게시물을 등록한 족족히 새로고침을 하면 다 사라집니다. 그리고 유저 정보도 안 가져와 집니다..
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
onBackPressed 강의와 다르게 동작합니다
package com.sowon.backbuttonex import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast class MainActivity : AppCompatActivity() { private var isDouble = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun onBackPressed(){ super.onBackPressed() Log.d("MainActivity", "backbutton") if(isDouble == true){ finish() } isDouble = true Toast.makeText(this, "종료할거면 더블 클릭!", Toast.LENGTH_LONG).show() android.os.Handler().postDelayed(Runnable { isDouble = false }, 2000) } }강의 보면서 위와 같이 코드를 작성했는데 강의에서는 뒤로가기 버튼을 2초 내에 2번 눌러야 메인화면이 나오는데 저는 한번만 눌러도 메인화면이 나옵니다..!
-
해결됨Flutter로 SNS 앱 만들기
섹션6 게시글등록화면_Firebase Storage에 게시글 이미지 저장
섹션6 게시글등록화면_Firebase Storage에 게시글 이미지 저장 에서 에러가 발생 되었습니다.FeedState는 import하니 없어졌구요.StreamProvider는 어떻게 해야할지요.멜 보냈습니다.