묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
질문이 있습니다.
플러터플로우로 빠르게 프론트 부분을 완성시키고 세세한 validator나 인증 절차등은 flutter 코드로 구현하려고 하는데요. 이를 flutterflow의 Git repo에 push하고 다른 branch에 pull하여 플러터로 수정하는 식으로 앱을 개발해보고 있습니다.이때 Git repo의 관리 방법이나(rebase, merge, ff only 등) 퍼블리싱은 flutter로 하는 방법밖에 없는지 질문드리고 싶습니다.
-
미해결너네 백엔드 하고 싶은 거 있으면 얼마든지 해 난 괜찮어 왜냐면 나는 파이어베이스가 있어
회원가입 실행이 안되요
사전 설정은 다 제대로 한 것 같은데 회원가입하면 실패도 아니고 오류 로그가 뜹니다.. ㅠㅠapi 오류라고 해서 콘솔 sdk도 다 다시 설정해 보았는데 자꾸 오류가 뜹니다... ㅠㅠ 해결 부탁드립니다. 제 파이어베이스 API sdk입니다. useSignup.jsimport { useState } from 'react' import { appAuth } from '../firebase/config' import { createUserWithEmailAndPassword, updateProfile } from 'firebase/auth' export const useSignup = () => { // 에러 정보를 저장합니다. error 상수에 저장 기본값 null // setError -> 상태를 업데이트 하기 위한 것 const [error, setError] = useState(null); // 현재 서버와 통신중인 상태를 저장합니다. // isPending이 ture면 통신중 const [isPending, setIsPending] = useState(false); // signup 훅을 만듭니다. email, password, displayName 세가지 매개변수를 갖습니다. const signup = (email, password, displayName) => { setError(null); // 아직 에러가 없으니 null 입니다. setIsPending(true); // 통신중이므로 true입니다. // 파이어베이스에서 회원가입을 도와주는 함수 (도큐먼트에 있음) // 비밀번호 설정으로 유저 정보를 등록합니다. config에서 import 받아야합니다. createUserWithEmailAndPassword(appAuth, email, password) .then((userCredential) => { // 회원가입 // 성공했을 때, Signed in // 유저정보를 user에 담아옴 const user = userCredential.user; console.log(user); // 회원 정보를 정상적으로 받지 못하면 실패입니다. -> 경고 띄우기 if (!user) { throw new Error('회원가입에 실패했습니다.'); } // 회원 정보 업데이트 // 회원가입이 완료되고 유저 정보에 닉네임(displayName)을 업데이트합니다. import 받아야합니다.\ // appAuth.currentUser를 통해 현재 로그인 정보를 받아옴 updateProfile(appAuth.currentUser, { displayName }) .then(() => { setError(null); setIsPending(false); }).catch((err) => { //예외 처리 setError(err.message); setIsPending(false) console.log(err.message); }); }) .catch((err) => { // 예외 처리 setError(err.message); setIsPending(false); console.log(err.message); }); } // 에러값, 통신여부, signup 함수(밖에서 사용할 수 있도록) 리턴 return { error, isPending, signup } } config.js// 계정과 관련된 파이어베이스 설정 -> 깃허브에 올리면 안됨 // Import the functions you need from the SDKs you need import { initializeApp } from "firebase/app"; import { getAuth } from "firebase/auth"; import { getFirestore } from "firebase/firestore"; // Your web app's Firebase configuration const firebaseConfig = { apiKey: process.env.REACT_APP_API_KEY, authDomain: process.env.REACT_APP_AUTH_DOMAIN, projectId: process.env.REACT_APP_PROJECT_ID, storageBucket: process.env.REACT_APP_STORAGE_BUCKET, messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID, appId: process.env.REACT_APP_APP_ID, }; // Initialize Firebase 인증 초기화 // firebase 초기화 const app = initializeApp(firebaseConfig); const appAuth = getAuth(); // firestore 초기화 const appFireStore = getFirestore(app); // 나중에 다른 곳에서도 사용 가능하게 빼놓는 것 export{appAuth, getFirestore} .envREACT_APP_API_KEY = AIzaSyAIgKLWTMyx_t8VhSzEUB3XQF755FGB7_c REACT_APP_AUTH_DOMAIN = mydiary-ccb8c.firebaseapp.com REACT_APP_PROJECT_ID = mydiary-ccb8c REACT_APP_STORAGE_BUCKET = mydiary-ccb8c.appspot.com REACT_APP_MESSAGING_SENDER_ID = 1047629886497 REACT_APP_APP_ID = 1:1047629886497:web:59ffb871ffeb3054261f60
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
실행하면 바로 앱이 안떠요..
이제 처음 선생님도 앱을 실행했을때 ok라고 뜨 잖아요 그런데 저는 실행도 안되요...그래서 다시 처음부터 했는데 되지 않아요.......ㅠㅠ
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
firebase option 오류
- 안녕하세요. firebase를 사용하는 12강을 보고 따라하던 도중에 이런 에러가 발생했습니다. 재설치를 해도 init을 해서 초기화를 해도 해결이 되지 않네요. 설치후 바로 들어가는 도입부분이라 더 아리쏭합니다.
-
해결됨Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
메뉴 컴포넌트 분리..
안녕하세요~ default.vue에서 헤더의 메뉴 부분 컴포넌트를 분리해봤는데그럼 authDialog 가 활성화가 안 되더라구요..방법이 없을까요?
-
해결됨Flutter로 SNS 앱 만들기
회원가입화면
에뮬레이터를 실행하고 회원가입화면으로 보고 싶은데, main화면이 실행됩니다
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
게시글/댓글 작성 후 리스트뷰에 즉시 반영이 안됩니다
안녕하세요 강사님좋은 강의 제공해주셔서 감사합니다.제목 그대로의 문제가 있어서 질문 남깁니다.BoardWrite액티비티에서 게시글 작성 후 등록 버튼을 누르고 finish()를 통해 프래그먼트로 빠져나오는 경우,그리고 BoardInside액티비티에서 댓글을 등록한 경우리스트뷰에 결과가 즉시 반영되지 않는 것 같습니다.다른 액티비티 혹은 프래그먼트로 이동 후 돌아오면 반영되긴 하지만요...강사님 영상을 보니 게시글/댓글 모두 리스트뷰에 즉시 반영되는 것 같은데...아, 차이점이 있다면 저는 binding을 쓰지 않았습니다. 혹시 이 탓일까요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
비밀번호 재설정에서 질문있습니다!
안녕하세요, 파이어베이스 인증 부분'비밀번호 변경하기' 강의에서 궁금한 것이 있어 질문드립니다. 비밀번호 재설정을 위해 이메일로 재설정 링크를 발송하고재설정할 비밀번호를 입력하면이 창이 뜨는데, 여기서 저는 비밀번호 재설정 후 바로 제가 원하는 로그인화면으로 나왔으면 좋겠습니다. 상기의 화면은 제가 생성한 파일이 아니라firebase에서 보여주는 화면인데,그 부분은 어떻게 해야할까요, 그럼 확인부탁드리겠습니다감사합니다!
-
미해결vue.js 실전 프로젝트(트위터 클론)
배포 후 로그인 불가 현상
6월에 완성하고 파이어베이스 배포했을때는 정상적으로 작동을 했었는데 오늘 확인차 로그인을 해보려고 하니 이런 에러 메세지가 뜨면서 로그인 자체가 되질 않네요. 이전에 저장됐던 로그인 정보 파이어베이스 db에서 모두 삭제하고 새로 회원가입 후 로그인 했을때 현상입니다,.. 다른 아이디로 회원가입하고 로그인해도 똑같은 현상이 발생하네요.
-
해결됨풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
graphqlFetcher 관련 에러와 , data 객체 정의 되지 않는 오류 질문 드립니다
안녕하세요. msw 강의를 듣는 중에 해결되지 않는 문제가 있어서 질문 남깁니다.pages > products > [id].tsx이 호출과 일치하는 오버로드가 없습니다.오버로드 1/3('(queryKey: QueryKey, options?: Omit<UseQueryOptions<Product, unknown, Product, QueryKey>, "queryKey"> | undefined): UseQueryResult<...>')에서 다음 오류가 발생했습니다.'() => Promise<unknown>' 유형에 'Omit<UseQueryOptions<Product, unknown, Product, QueryKey>, "queryKey">' 유형과 공통적인 속성이 없습니다.오버로드 2/3('(queryKey: QueryKey, queryFn: QueryFunction<Product, QueryKey>, options?: Omit<UseQueryOptions<Product, unknown, Product, QueryKey>, "queryKey" | "queryFn"> | undefined): UseQueryResult<...>')에서 다음 오류가 발생했습니다.'Promise<unknown>' 형식은 'Product | Promise<Product>' 형식에 할당할 수 없습니다.'Promise<unknown>' 형식은 'Promise<Product>' 형식에 할당할 수 없습니다.'unknown' 형식은 'Product' 형식에 할당할 수 없습니다.ts(2769)types.d.ts(9, 89): 필요한 형식은 이 시그니처의 반환 형식에서 가져옵니다ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ'{}' 형식에 'Product' 형식의 id, imageUrl, price, title 외 2개 속성이 없습니다.ts(2740)detail.tsx(3, 77): 필요한 형식은 여기에서 'IntrinsicAttributes & { item: Product; }' 형식에 선언된 'item' 속성에서 가져옵니다.import { Product } from '../../graphql/products' const ProductDetail = ({ item: { title, imageUrl, description, price } }: { item: Product }) => ( <div className="product-detail"> <p className="product-detail__title">{title}</p> <img className="product-detail__image" src={imageUrl} /> <p className="product-detail__description">{description}</p> <span className="product-detail__price">${price}</span> </div> ) export default ProductDetailcomponents > products > detail.tsxpages > products > index.tsx이 호출과 일치하는 오버로드가 없습니다. ... 필요한 형식은 이 시그니처의 반환 형식에서 가져옵니다(위와 동일)'NonNullable<TQueryFnData>' 형식에 'products' 속성이 없습니다'product' 매개 변수에는 암시적으로 'any' 형식이 포함됩니다 해당 에러는 앞서 다른 수강생들도 질문한 부분이라 찾아봤는데const { data } = useQuery<Products>(QueryKeys.PRODUCTS, () => graphqlFetcher<Products>(GET_PRODUCTS) ) 알려주신 방식대로 리액트쿼리 버전 변경에 따라 타입스크립트 정의 방식이 바뀐 형태로 수정해주었는데도 같은 에러가 발생합니다.handlers.ts이 상태에서 실행을 하니 data객체가 정의되지 않는다고 나오며 localhost 500 Request Handler Error가 뜹니다import { gql } from 'graphql-tag' export type Product = { id: string imageUrl: string price: number title: string description: string createdAt: string } // export type MutableProduct = Omit<Product, 'id' | 'createdAt'> export type Products = { products: Product[] } const GET_PRODUCTS = gql` query GET_PRODUCTS { id imageUrl price title description createdAt } ` export const GET_PRODUCT = gql` query GET_PRODUCT($id: string) { id imageUrl price title description createdAt } `graphql > products.ts며칠째 계속 잡고 하다가 안되서 그냥 두고 다음 강의 듣고 있는 중인데 오류 때문에 자꾸 신경이 쓰이네요별거 아닌 에러였으면 좋겠네요
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
vite로 프로젝트를 만들어서 진행해도 문제 없을까요?
안녕하세요~당연히 강의 내용을 따라가는게 맞긴 합니다만, 제가 백엔드 개발자라 인텔리제이 IDE를 쓰는게 편해서 강의를 인텔리제이로 진행중입니다vite로 프로젝트를 만들면 인텔리제이에서 뷰로 인식해서 여러 vscode에서 따로 설치해야하는 플러그인 기능을 기본으로 제공해주더군요근데 퀘이사로 프로젝트를 생성하면 이같은 기능이 동작하지 않네요 정리하자면 vite로 프로젝트를 만들어서 퀘이사를 설치해도 후반부 강의에 문제 없을까요?
-
해결됨[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
초급용 미리보기 영상을 보며 따라하고 있습니다.
안녕하세요!1) 초급용 추천받아서 미리보기로 영상을 따라하고 있는데 영상과 다르게 'build configuration language'가 계속 뜨고2) 'android studio' 다운 받을 때 저는 'android studio giraffe'로 다운을 받았는데 이건 버전을 나누기 위해 다른 게 맞나요?
-
해결됨[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
만든 후 activity_main.xml이 없습니다. MainActivity.kt의 로고도 이상합니다.
안녕하세요!위 화면에서 finish후 나오는 화면입니다.
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
즐겨찾기 기능 질문 요청드립니다..
페이지 처음진입시 즐겨찾기 클릭하면정상적으로 별이 on 으로 바뀌게 되는데" 한번끄고 다시 키면 on으로 바뀌지않고 off 형태의 아이콘이되어있고 다시 뒤로갔다가 들어오면 정상적으로 on 으로 바껴있습니다 !!= 파이어베이스 db 상에는 데이터가 들어오지만상태가 바뀌지않아서 off 상태일때 10번누르면10번이 다 firebase db에 insert 되는현상이 나타납니다 ㅠㅠprofilePageactions: [ GestureDetector( onTap: () { var myUid = context.read<AuthenticationCubit>().state.user!.uid; context.read<UserProfileCubit>().followToggleEvent(myUid!); }, child: Padding( padding: const EdgeInsets.only(right: 20), child: BlocBuilder<UserProfileCubit,UserProfileState>( builder: (context,state) { var myUid = context.read<AuthenticationCubit>().state.user!.uid; var isFollowing = state.userModel?.followers?.contains(myUid) ?? false; return SvgPicture.asset(isFollowing ? 'assets/svg/icons/icon_follow_on.svg' :'assets/svg/icons/icon_follow_off.svg'); } ), ),user profile cubit void followToggleEvent(String myUid) async { if (state.userModel!.followers != null && state.userModel!.followers!.contains(myUid)) { // 즐겨찾기 취소 언팔 var result = await userRepository.followEvent(false,state.userModel!.uid!,myUid); if (result) { await _unfollow(myUid); } } else { // 즐겨 찾기 하기 var result = await userRepository.followEvent(true,state.userModel!.uid!, myUid); if (result) { await _follow(myUid); } } } _unfollow(myUid) async { emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [...state.userModel!.followers!.where((targetUid) => targetUid != myUid)], ), ), ), ); } _follow(myUid) async { print(state.userModel!.followers); if (state.userModel!.followers == null) { // 최초 팔로워 대상 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [myUid], ), ), ), ); } else { // 다른사람이 이미 팔로워 한사람 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [ ...state.userModel!.followers!, uid ], ), ), ), ); } } }user-repositoryFuture<bool> followEvent(bool isFollow,String targetUid, String myUid) async { try { // 2 가지 업데이트 ( 트랜잭션 실행 필요 ) final batch = db.batch(); // Type1 . 상대방 팔로워에 내가 들어가는건다.. var targetUserDoc = await db.collection("users").where("uid", isEqualTo: targetUid).get(); UserModel targetUserInfo = UserModel.fromJson(targetUserDoc.docs.first.data()); var followers = targetUserInfo.followers ?? []; // 최초사람 if (isFollow) { followers.add(myUid); } else { followers.remove(myUid); } var targetRef = db.collection("users").doc(targetUserDoc.docs.first.id); batch.update(targetRef, {'followers': followers}); // Type1 . 내 팔로워에 상대방이 들어간다... var myUserDoc = await db.collection("users").where("uid", isEqualTo: myUid).get(); UserModel myUserInfo = UserModel.fromJson(myUserDoc.docs.first.data()); var followings = myUserInfo.followings ?? []; if (isFollow) { followings.add(targetUid); } else { followings.remove(targetUid); } var MyRef = db.collection("users").doc(myUserDoc.docs.first.id); batch.update(MyRef, {'followings': followings}); await batch.commit(); return true; } catch (e) { return false; } }
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
리뷰작성 별점 문의
안녕하세요 개남님!! 다름이아니라 리뷰작성페이지에서 별점을 올려놓고 리뷰 입력할려고 텍스트 필드를 클릭하고 나면 별점이 0.00 으로 다시 되돌아가고 있습니다. 그리고 save 저장할대 값은 5.44 대로 잘 들어오고 있는 현상이 나타납니다 ㅠ..ㅠ리뷰 슬라이드바는 공유 해주신 dart 파일 그대로 사용하였구용 import 'package:book1/src/common/components/app_divider.dart'; import 'package:book1/src/common/components/review_slider_bar.dart'; import 'package:book1/src/common/model/naver_book_info.dart'; import 'package:book1/src/review/cubit/review_cubit.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_svg/svg.dart'; import 'package:go_router/go_router.dart'; import '../../common/components/app_font.dart'; import '../../common/components/btn.dart'; class ReviewPage extends StatelessWidget { NaverBookInfo naverBookInfo; ReviewPage(this.naverBookInfo, {super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( leading: GestureDetector( onTap: context.pop, child: Padding( padding: const EdgeInsets.all(15.0), child: SvgPicture.asset('assets/svg/icons/icon_arrow_back.svg'), ), ), title: AppFont( "리뷰 작성", size: 18, ), centerTitle: true, ), body: Column( children: [ _HeaderBookInfo(naverBookInfo), AppDivider(), Expanded(child: _ReviewBox()), ], ), bottomNavigationBar: Padding( padding: EdgeInsets.only( left: 20, right: 20, top: 20, bottom: 20 + MediaQuery.of(context).padding.bottom), child: Btn( onTap: context.read<ReviewCubit>().save, text: '저장', ), ), ); } } class _ReviewBox extends StatelessWidget { _ReviewBox({super.key}); @override Widget build(BuildContext context) { return TextField( // 전체화면 텍스트필드 maxLines: null, decoration: const InputDecoration( border: InputBorder.none, hintText: "리뷰를 입력해주세요", contentPadding: EdgeInsets.symmetric(horizontal: 25), hintStyle: TextStyle( color: Color(0xff585858), ), ), onChanged: context.read<ReviewCubit>().changeReview, style: TextStyle(color: Colors.white), ); } } class _HeaderBookInfo extends StatelessWidget { final NaverBookInfo naverBookInfo; _HeaderBookInfo(this.naverBookInfo, {super.key}); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(25.0), child: Row( children: [ ClipRRect( borderRadius: BorderRadius.circular(7), child: SizedBox( width: 71, height: 106, child: Image.network( naverBookInfo.image ?? '', fit: BoxFit.fill, )), ), SizedBox( width: 15, ), Expanded( //어디 영역까지 사용할거냐 child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ AppFont( naverBookInfo.title ?? '', size: 16, fontWeight: FontWeight.bold, ), SizedBox( height: 5, ), AppFont( naverBookInfo.author ?? '', size: 12, color: Color(0xff878787), ), SizedBox( height: 10, ), ReviewSliderBar( onChange: context.read<ReviewCubit>().changeValue, ), ], ), ) ], ), ); } }
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
람다 함수 중복 문제가 발생했는대 해결을 못하고있습니다.
명언 앱 마지막 부분에서 컴파일을 실행하면 발생하는 오류가 있습니다. Type com.cho.goodwards.MainActivity$$ExternalSyntheticLambda0 is defined multiple times: /Users/mac/Desktop/개인공부/Kotlin_ex/ex.5/app/build/intermediates/project_dex_archive/debug/out/com/cho/goodwards/MainActivity 2.dex, /Users/mac/Desktop/개인공부/Kotlin_ex/ex.5/app/build/intermediates/project_dex_archive/debug/out/com/cho/goodwards/MainActivity.dex 예제 파일을 받아 복붙해도 똑같이 오류가 발생합니다. gpt 에 질문 하니 binding = DataBindingUtil.setContentView(this, R.layout.activity_main) binding.showAllSentenceBtn.setOnClickListener { val intent = Intent(this, SentenceActivity::class.java) startActivity(intent) } binding.goodWordTextArea.setText(sentenceList.random()) } 이부분에서 문제가 생긴다고 하는대 안드로이드 처음이라 오류 찾는게 좀 힘듭니다. 구글링에서도 그래들 빌드 설정을 바꿔라는대 제가 잘못 수정했는지 오류가 여전히 걸리더군요
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
매칭리스트를 눌러도 아무 반응이 없어요
계정 여러개 생성하여 서로 매칭을 시켜 알람까지 갔는데 MY MATCHING LIST를 눌러도 아무 반응이 없네요 어디가 문제인지 봐주실 수 있을까요?전체코드 깃허브 주소 -https://github.com/alsxm4625/sogating4/commit/e1307ce30381e77d678b715b3227f2e1a00d9a09
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
플러터 바탕화면 빠진후 앱 진행시
안녕하세요 . 섹션7의 검색 라우터를 진행하다가 우연히 바탕화면에 들어갔다가 앱마크를 재생버튼이 아닌앱 마크를 클릭을 했더니 splash 화면에서 로딩중으로만 계속 되어있고print를 찍었더니 아예 App()에 있는 Gorouter 자체를 타지를 않는 현상이 생기고 있습니다.혹시 바탕화면 갔다가 다시 홈페이지 화면으로 들어가려고 하는데방법이 있을까 해서 글을 작성드렸습니다. 감사합니다 ㅠㅠ
-
미해결틴더 파이어베이스 클론 | 리액트 네이티브
더이상 학습 진행이 안됨...
FB) 파이어 베이스 로그인 (2) - Google Auth 여기서부터 진행이 안되는데 화면에서 혹시 빼먹은 부분이 있는게 아닌가 생각이 듭니다.
-
해결됨Flutter로 SNS 앱 만들기
접속중인 사용자의 정보 가져오기 강의 관련 질문
안녕하세요.강의 잘 듣고 있습니다.접속중인 사용자의 정보 가져오기 강의 관련 질문 있습니다.아래와 같이 영상과 같이 코딩했는데 빨간 줄이 지워지지 않습니다.Future<UserModel> 로 함수 정의를 했는데 빨간 줄이 지워지지 않습니다.무슨 문제인지 모르겠습니다. 바쁘신데 질문 읽어주셔서 감사합니다.