7강 데이터바인딩 강의 부분에서 데이터 바인딩을 이용해서 회원가입 하는 코드로 바꾸니까 아래와 같은 에러가 뜨는데 혹시 이유를 알 수 있을까요?? 첫번째 방법으로 알려주신 코드에서는 정상 작동합니다. 2025-02-25 15:06:55.135 21860-21860 AndroidRuntime com...mple.login_noticeborad_sample E FATAL EXCEPTION: main Process: com.example.login_noticeborad_sample, PID: 21860 java.lang.IllegalArgumentException: Given String is empty or null at com.google.android .gms.common.internal.Preconditions.checkNotEmpty( com.google.android .gms:play-services-basement@@18.5.0:2) at com.google .firebase.auth.FirebaseAuth.createUserWithEmailAndPassword( com.google .firebase:firebase-auth@@23.2.0:8) at com.example.login_noticeborad_sample.MainActivity.onCreate$lambda$2(MainActivity.kt:56) at com.example.login_noticeborad_sample.MainActivity.$r8$lambda$DKhI7UPT1Ljx4UCoyoqWCv0Qxw4(Unknown Source:0) at com.example.login_noticeborad_sample.MainActivity$$ExternalSyntheticLambda1.onClick(D8$$SyntheticClass:0) at android.view.View.performClick(View.java:8028) at android.view.View.performClickInternal(View.java:8005) at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) at android.view.View$ PerformClick.run (View.java:31229) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app .ActivityThread.main(ActivityThread.java:8705) at java.lang.reflect.Method.invoke(Native Method) at com.android .internal.os.RuntimeInit$ MethodAndArgsCaller.run (RuntimeInit.java:580) at com.android .internal.os.ZygoteInit.main(ZygoteInit.java:886)
안녕하세요 강사님. 제가 파이어베이스 익명로그인 강의를 들으면서 노션에 기록해주신 2024년 이후 유튜브 영상으로 따라하고 강의 영상 그대로 따라했는데 아래와 같이 auth를 참조할 수 없다는 에러가 떠서 몇 시간동안 해결방법 찾으면서 해봤는데 다 안돼서 아예 프로젝트를 다 지우고 처음부터 꼼꼼히 다시 따라해보며 했는데도 안돼서 도움 요청합니다ㅜㅜ e: file:///C:/Users/tnghk/AndroidStudioProjects/fb_login_test/app/src/main/java/com/example/fb_login_test/MainActivity.kt:13:37 Unresolved reference: auth 깃허브 공유는 아래 처럼 url로 공유해도 괜찮나요?? https://github.com/SuHwanYY/android
안녕하세요 카일님 강의 마지막에 주신 연습문제 해보았습니다. PIVOT에 어떤 연산자를 사용할 것인가? MAX로 할 경우 -> 별도의 연산된 결과값이 있는 base`가 필요할 것 같음. 이 경우 강의 중 작성된 cnt를 참조하여 작성할 수 있을 것 같으나 3중 쿼리라는게 마음에 걸림. SUM으로 할 경우 -> 강의 중 작성한 base 만으로 충분할 것 같음. 2중 쿼리로 충분해보임. 따라서 B안으로 작성해보았습니다. WITH base AS ( SELECT event_date, event_timestamp, event_name, user_id, user_pseudo_id, platform, -- event_param, MAX(IF(event_param.key = 'firebase_screen',event_param.value.string_value, NULL)) AS firebase_screen, -- MAX(IF(event_param.key = 'food_id',event_param.value.int_value, NULL)) AS food_id, MAX(IF(event_param.key = 'session_id',event_param.value.string_value, NULL)) AS session_id, FROM advanced.app_logs CROSS JOIN UNNEST(event_params) AS event_param WHERE -- event_date = '2022-08-01' -> 적은 데이터로 쿼리를 작성하기 위해 입력한 임시 조건 event_date BETWEEN '2022-08-01' AND '2022-08-18' GROUP BY ALL -- LIMIT 100 -> 기초 구문 작성 완료 시 삭제 필요! ), filter_event_and_concat_event_and_screen AS ( -- name, screen concatate (필요한 이벤트만 WHERE 조건 걸어 사용) SELECT * EXCEPT(event_name,firebase_screen, event_timestamp), CONCAT(event_name, '-', firebase_screen) AS event_name_with_screen, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime FROM base WHERE event_name IN('screen_view', 'click_payment') ) # PIVOT 연습문제 SELECT event_date, SUM(IF(event_name_with_screen = 'screen_view-welcome',1,0)) AS `screen_view-welcome`, SUM(IF(event_name_with_screen = 'screen_view-home',1,0)) AS `screen_view-home`, SUM(IF(event_name_with_screen = 'screen_view-food_category',1,0)) AS `screen_view-food_category`, SUM(IF(event_name_with_screen = 'screen_view-restaurant',1,0)) AS `screen_view-restaurant`, SUM(IF(event_name_with_screen = 'screen_view-cart',1,0)) AS `screen_view-cart`, SUM(IF(event_name_with_screen = 'click_payment=cart',1,0)) AS `click_payment-cart`, FROM filter_event_and_concat_event_and_screen GROUP BY ALL ORDER BY event_date ASC
안녕하세요. Weekly retention을 구하고자 아래와 같이 쿼리를 작성했습니다. WITH base AS (SELECT DISTINCT user_id, event_name, DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul') AS event_datetime, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul')) AS event_date, user_pseudo_id FROM `advanced.app_logs` WHERE event_date BETWEEN "2022-08-01" AND "2022-11-03" ), first_week_and_diff AS ( SELECT *, DATE_DIFF(event_week, first_week, WEEK) AS diff_of_week FROM ( SELECT DISTINCT user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week FROM base ) ), user_cnt AS ( SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY diff_of_week ) SELECT *, ROUND(SAFE_DIVIDE(user_cnt, first_week_user_cnt), 2) AS retention_rate FROM ( SELECT diff_of_week, user_cnt, FIRST_VALUE(user_cnt) OVER(ORDER BY diff_of_week ASC) AS first_week_user_cnt FROM user_cnt ); 이렇게 쿼리 작성을 하니 오류가 발생했고 user_cnt AS ( SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY diff_of_week ) 이 부분에서 테이블 이름을 user_counts로 수정하니 제대로 동작함을 확인했습니다. 왜 이름 때문에 오류가 발생하는 것인지 궁금합니다.
안녕하세요 로펀님. 강의 잘 듣고 있습니다. useInfiniteQuery에서 반환하는 hasNextPage를 이용해 fetchNextPage를 하는데 searchMovies에서 작성한 const hasNextPage = count > page * pageSize 는 사용하지 않는 것 같아서 질문 올립니다! {data?.pages ?.map((page) => page.data) ?.flat() ?.map((movie) => ( <MovieCard key={movie.id} movie={movie} /> ))} 에서도 searchMovies 에서 반환하는 page, pageSize, hasNextPage를 제외하고 data만 쓰시길래 작성하신 이유가 궁금합니다. useInfiniteQuery에서 반환하는 hasNextPage와는 다른 건가요??
안녕하세요 카일님 1-5 학습 중 PIVOT 예제용 TABLE을 만들어 보려고 하였습니다. 결론부터 말씀드리면 TABLE 생성에 성공하였어요. 다만 궁금한 것은 제가 겪은 오류에 대한 해석이 올바른 것인지 확인 받고 싶어서 질문 드립니다. 1-4 강에 있던 array_exercise 생성 구문을 참고하여 아래와 같은 구문으로 실행하였더니 생성되지 않았습니다. 가장 안쪽의 select 부터 실행하면서 찾아보니 최하단의 UNION ALL이 원인이었더라구요. UNION ALL 은 아래에도 추가 ROW를 입력해야 할 때, 한 행으로 밀어넣는 명령어이므로, 마지막 행 다음에는 넣지 말아야 한다. 넣을 경우 그 뒤에 추가적인 데이터의 입력을 요구하나, 데이터가 없으므로 실행이 되지 않는 것이다. 라고 이해했는데, 맞게 이해했을까요? CREATE OR REPLACE TABLE `advanced.grade` AS SELECT student, grades FROM ( SELECT 'A' AS student, ARRAY<STRUCT<subject STRING, score INT64>>[ STRUCT('수학', 80), STRUCT('영어', 90), STRUCT('과학', 85) ] AS grades UNION ALL SELECT 'B', ARRAY<STRUCT<subject STRING, score INT64>>[ STRUCT('수학', 75), STRUCT('영어', 95), STRUCT('과학', 80) ] UNION ALL )
안녕하세요, 강사님. 저는 현재 안드로이드 강의를 수강하고 있는 학생입니다. 강의 내용을 따라가고 있는데, 파이어베이스를 활용한 익명로그인, 이메일로그인, 데이터베이스 활용하기에서 막혔습니다. 문제 부분: import문이나 코드에는 빨간줄 없이 다 정상입니다. 다만 앱을 실행하면 auth를 참조할 수 없다고 뜨면서 빌드가 멈춥니다. 시도한 방법: 질문게시판에 있는 해결 방법과 스택오버플로우, chat gpt등을 활용해서 문제를 해결하려 했지만 계속 오류가 뜹니다. import 부분에서 현재 버전은 자바와 코틀린 동일한 것을 사용할 수 있다고 해서 그냥 auth도 써보고 ktx.auth도 사용해봤습니다. 하지만 두개 모두 같은 오류가 발생합니다. 제가 짠 코드는 깃허브에 올려뒀습니다. https://github.com/hyoonpark/kotlin-matbogi/tree/main/day6/fblogin 이 부분에 대해 추가적인 설명이나 자료를 제공해주시면 정말 감사하겠습니다. 감사합니다.
7:15까지 코드 따라하고, 구동하는데;; 아래와 같이 에러가 뜹니다... Thread 3: Simultaneous accesses to 0x600003d332b0, but modification requires exclusive access 구동조차 안되고 바로 아래와 같이 떠버려요;; 이건 어떻게 해결할가요???
선생님 4일 전에 질문 달았는데 다시한번 질문드립니다! 코드도 맞게 입력하고, 재부팅, 새로운 파일로 빌드도 다 해봤는데도 토스트 메세지가 뜨지 않아서 프로젝트 압축 파일 올려놨습니다ㅠㅠ 이유를 모르겠습니다.. https://drive.google.com/drive/folders/1qDl-Spv709ko__1M-HI0RItbNR9jhtF_?usp=sharing
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 안녕하세요. recoil 강의 부분에서 하나의 에러로 인해서 진행이 막힌 상태입니다! TypeError: Cannot destructure property 'ReactCurrentDispatcher' of ' {imported module [project]/nodemodules/next/dist/compiled/react/index.js [app-client] (ecmascript)} .default.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' as it is undefined. "dependencies": { "next": "15.1.6", "react": "^19.0.0", "react-dom": "^19.0.0", "recoil": "^0.7.7" }, next 15 & react 19 버전으로 진행중이었는데 구글링을 해보아도 다들 더이상 recoi은 사용하지말라 이런 답만 알려주고있어 해결하기가 어려운 상태네요. 결국 버전문제인 것 같은데, 최신 버전으로 해당 문제가 해결이 어렵다면 다른 상태관리 라이브러리를 사용하며 진행하고싶은데요, Zustand 라이브러리를 사용해도 진행에 무리없을까요?
안녕하세요. 이미지 질문이 있습니다. 이미지 영역 바깥 테두리 보더값을 주고 싶은데 우측 패널?에서 안보여서 어떻게 할 수 있을까요? 이미지 업로드 전에는 디폴트 이미지를 주고 싶은데 이때 조건을 어떻게 줄 수 있을까요? condition 설정에 Default Variable Value는 on/off 만 있어서 그건 아닌거 같아서요.