월 26,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
[Restaurant Pagination 요청해보기] DioError [DioErrorType.response]: Http status error [401]가 나옵니다.
void checkToken() async { final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); final dio = Dio(); try { final resp = await dio.post( 'http://$ip/auth/token', options: Options(headers: {'authorization': 'Bearer $refreshToken'}), ); await storage.write( key: ACCESS_TOKEN_KEY, value: resp.data['accessToken']); Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute(builder: (_) => RootTab()), (route) => false); } catch (e) { Navigator.of(context).pushAndRemoveUntil( MaterialPageRoute(builder: (_) => LoginScreen()), (route) => false); } } 토큰값을 갱신하도록 수정하는 부분에서 토큰값을 갱신했는데 관련로직에서 문제가 있는거같습니다. 검색결과 저랑 같은문제 겪는분이 계신거같은데 챗지피티 열심히돌려도 해결책을 결국 못찾아서 질문남깁니다 ㅠㅠhttps://github.com/hottunes/hukuoka_eat.git flutter: DioError [DioErrorType.response]: Http status error [401]Source stack:#0 DioMixin.fetch (package:dio/src/dio_mixin.dart:488:35)#1 DioMixin.request (package:dio/src/dio_mixin.dart:483:12)#2 DioMixin.get (package:dio/src/dio_mixin.dart:61:12)#3 RestaurantScreen.paginateRestaurant (package:hukuoka_eat/restaurant/view/restaurant_screen.dart:14:28)<asynchronous suspension>#4 FutureBuilderState.subscribe.<anonymous closure> (package:flutter/src/widgets/async.dart:624:31)<asynchronous suspension>flutter: null
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
파이어베이스 이미지 업로드 질문
이미지 서버로 firebase를 선택했는데 업로드 속도가 많이 느려 로글르 살펴보니 error getting token java.util.concurrent.ExecutionException: com.google.firebase.internal.api.FirebaseNoSignedInUserException: Please sign in before trying to get a token.''Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: No AppCheckProvider installed.W/NetworkRequest(16203): no auth token for request' 위와 같은 두 에러가 뜨네요.. 구글에 검색해도 잘 안나와서 질문 남깁니다. 위와 같은 에러를 마주친 경험이 있을까요??
- 해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
assets 자료 어디서 받을 수 있습니까?
섹션 1, ui 강의 듣고 있는데요. 폰트 같은 자료는 어디서 받을 수 있습니까?
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
질문있습니다.
basket screen에서 appBar에 뒤로가기 기능을 입혀보려고 합니다. 다른 페이지들은 가능한데, 장바구니 페이지에서는 뒤로가기 기능이 안되더라고요, paginationListview로 씌우고 <BasketITemModel>를 넣으려고 해서 안되는 것 같은데요, 이게 가능하도록 하려면 어떻게 해야할까요?
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
강의 정리 자료같은것도 제공되면 정말 지구 1등 플러터 강의가 될거같아요
플러터 기본편 완강하고 너무 만족해서 중급도 들으러왔어요+_+ 근데 강의 내용을 정리한 PDF자료가 있으면 어떨까 하는 생각이 자꾸 들어요.... 이런것도 있으면 정말 지구 1등의 플러터 강의가 될 것 같아요! ! 있어야 한다 이건 아니고 그냥 수강생 한명의 의견입니다..... - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
처음부터 듣지않고, 중급만 듣고 있는데 문제가 있습니다.
중급부터 듣기 시작하니, 강의중에 말씀하신 이미지 같은것들을 어디서 받을수 있을까요? 코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
orderProvider 관련 질문이 있습니다.
선생님 안녕하세요. 완강 후 코드 뜯어보면서 복습 중입니다:) 주문 탭 클릭 시 곧바로 주문한 최신 리스트를 볼 수 있게하는 방법을 고민하다가 orderProvider를 들여다 보았는데요.곰곰히 생각해보니 postOrder만 해서는 orderProvider(orderStateNotifier)의 상태가 업데이트가 안되는 거 아닌가 하는 생각이 들었습니다. 그래서 forceRefetch하는 것처럼, postOrder 함수 하단에 true 반환하기 전에 paginate()를 실행하여 주문 탭 클릭시 곧바로 최신 리스트 뜨도록 했습니다.Future<bool> postOrder() async{ try{ final uuid = Uuid(); final id = uuid.v4(); final state = ref.read(basketProvider); final resp = await repository.postOrder( body: PostOrderBody( id: id, products: state.map((e) => PostOrderBodyProduct(productId: e.product.id, count: e.count)).toList(), totalPrice: state.fold(0, (pre, next) => pre + (next.product.price * next.count)), createdAt: DateTime.now().toString())); paginate(); return true; } catch(e){ return false; } }이렇게 하는 게 옳은 방법일까요? 그리고 굳이 forceRefetch를 통해서만 주문탭이 업데이트되게 하신 이유가 있을까요?
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
맥북에서 에뮬, 시뮬레이터 오류들
안녕하세요, 수업 잘 듣고 있습니다.다름이 아니라 이번에는 제가 근무지 이동때문에데스크탑(윈도우)이 아닌 맥북(m1)으로 코딩을 공부하는 중입니다. 현재 가장 최신인 giraffe버전인데, 맥북에서 시뮬레이터로 코딩하면 크롬에서 스웨거도 잘 뜨고, 자동로그인도 잘되어 splashscreen페이지에서 바로 rootTab으로 넘어갑니다. 그런데 그 외의 서버에서 보내오는 이미지나 텍스트 데이터들이 전혀 뜨지 않아 무한 로딩을 합니다ㅠ 그래서 에뮬레이터를 돌려보려고 하니 파일 경로중에 알맞지 않은 문자가 있다는데, 아무리 봐도 '_'(아래바) 제외하고는 전혀 특수문자나 공백은 없습니다.. 에뮬도 안켜지고, 시뮬레이션에 데이터도 안떠서 답답하네요; 도움 구할 곳이 없어 도움 구해봅니다 ㅠ올 한해도 고생 많으셨고, 해피 크리스마스 입니다^^
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
GoRouter Redirection관련 질문이 있습니다..
안녕하세요? 강사님,중급강의 섹션 13. [Go Router v7] GoRouter 이론 중 "Redirection" 파트에 관련된 질문인데요. 9_login_screen.dart 파일(LoginScreen 클래스)에 코딩된 "authState"는router.dart파일에 코딩된 "authState"와 어떤 관계(?)인지를 모르겠습니다. 무슨말인가 하면 authState 변수는 LoginScreen 클래스내에서 별도로 선언을 해주지도 않았는데도 setStat를 이용해서 값을 ture, false로 바꿀 수 있는 것도 이상하고,이렇게 LoginScreen 클래스에서 변경된 authState값이 router.dart파일에서 인식(?)이 되는것도 이상합니다. 제 질문이 조금 무식해 보이긴 한데...제 질문 의도는 파악하셨으리라 생각되어서 답변 좀 부탁드리겠습니다...
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
basketProvider에서 patchBasket 함수 호출 시 에러가 발생합니다
제 코드는 아래와 같고,import 'package:advanced_app/product/model/product_model.dart'; import 'package:advanced_app/user/model/patch_basket_model.dart'; import 'package:advanced_app/user/model/basket_item_model.dart'; import 'package:advanced_app/user/repository/user_me_repository.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:collection/collection.dart'; final basketProvider = StateNotifierProvider<BasketProvider, List<BasketItemModel>>((ref) { final repository = ref.watch(userMeRepositoryProvider); return BasketProvider(repository: repository); }); class BasketProvider extends StateNotifier<List<BasketItemModel>>{ final UserMeRepository repository; BasketProvider({ required this.repository, }):super([]); Future<void> patchBasket () async { await repository.patchBasket( body: PatchBasketBody( basket: state.map( (e) => PatchBasketBodyBasket( productID: e.product.id, count: e.count)) .toList()) ); } Future<void> addToBasket({ required ProductModel product,}) async { // 1 아직 장바구니에 해당 상품이 없는 경우 -> 추가 // 2 동일한 상품이 있는 경우 -> count +1 final exists = state.firstWhereOrNull((e) => e.product.id == product.id) != null; if(exists){ state = state .map( (e) => e.product.id == product.id ? e.copyWith(count: e.count +1) : e ).toList(); }else{ state = [ ...state, BasketItemModel( product: product, count:1) ]; } await patchBasket(); } Future<void> removeFromBasket({ required ProductModel product, bool isDelete = false}) async{ // isDelete면 count와 상관없이 삭제 final exists = state.firstWhereOrNull((e) => e.product.id == product.id) != null; if(!exists){ return; } // 이제 무조건 있는 경우 final existingProduct = state.firstWhere((element) => element.product.id == product.id); // 1개 있는 경우 삭제 (해당하는 상품 빼고 리스트 만들어서 넣어 주는 방식) if (existingProduct.count == 1 || isDelete){ state = state .where((e) => e.product.id != product.id) .toList(); } else{ // 2개 이상 있는 경우 state = state .map((e) => e.product.id == product.id? e.copyWith( count: e.count -1) : e).toList(); } } }에러 로그는 아래와 같습니다. --------------[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: type 'Null' is not a subtype of type 'Map<String, dynamic>' in type cast#0 $BasketItemModelFromJson (package:advancedapp/user/model/basket_item_model.g.dart:11:54)#1 new BasketItemModel.fromJson (package:advanced_app/user/model/basket_item_model.dart:25:14)#2 UserMeRepository.patchBasket.<anonymous closure> (package:advancedapp/user/repository/user_me_repository.g.dart:93:45)#3 MappedListIterable.elementAt (dart:_internal/iterable.dart:415:31)#4 ListIterator.moveNext (dart:_internal/iterable.dart:344:26)#5 new GrowableList.ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189:27)#6 new GrowableList.of (dart:core-patch/growablearray.dart:150:28)#7 new List.of (dart:core-patch/array_patch.dart:47:28)#8 ListIterable.toList (dart:_internal/iterable.dart:214:7)#9 UserMeRepository.patchBasket (package:advancedapp/user/repository/user_me_repository.g.dart:94:10)Postman에서 get http://127.0.0.1:3000/user/me/basket 실행해 보면,[ { "count": 1 } ]처럼 product가 제대로 안들어가고 count 값만 들어가 있습니다. jsonSerializable 문제인가 싶어서 모델들 다 체크해봤는데... 코드 제너레이션도 정상적으로 되는데... 뭐가 문제일까요? 이것 때문에 3시간 넘게 씨름 중인데 도움 주시면 감사하겠습니다!
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
이미지 404에러가 발생했습니다~~
══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════ The following NetworkImageLoadException was thrown resolving an image codec: HTTP request failed, statusCode: 404, http://10.0.2.2:3000/img/%EB%96%A1%EB%B3%B6%EC%9D%B4/%EB%96%A1%EB%B3%B6%EC%9D%B4.jpg When the exception was thrown, this was the stack: #0 NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:135:9) <asynchronous suspension> Image provider: NetworkImage("http://10.0.2.2:3000/img/떡볶이/떡볶이.jpg", scale: 1.0) Image key: NetworkImage("http://10.0.2.2:3000/img/떡볶이/떡볶이.jpg", scale: 1.0) ════════════════════════════════════════════════════════════════════════════════════════════════════어떻게 해야할까요..?
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
패스워드 RSA 암호화 문의
강의에서는 패스워드를 암호화하지 않고 그냥 보내는 방식으로 설명해주셨는데요.Flutter 에서 패스워드를 RSA 암호화하고 서버에서 복호화 처리하는 방법으로 실제 프로젝트에서는 사용할 거 같습니다.Flutter 에서 RSA 암호화 하는 예제 코드 좀 부탁드리겠습니다.
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
ID, PW 전송시, Base64 인코딩을 사용하는 이유가 궁금합니다.
질문의 내용은 제목과 동일합니다.아래는 제가 궁금해서 찾아본 내용입니다. Base64 인코딩은 텍스트형태로 데이터를 전송할 때 사용한다고 하더군요.저희는 HTTP 통신을 하게 되는데, HTTP 통신에서는 이진데이터 전송이 불가하다고 합니다. (버전별로 다 그런지 찾아본것은 아님)그래서 pdf 나 이미지 같은 이진 바이너리 파일을 전송하기 위해 Base64 를 사용한다고 이해를 했습니다.코드 상에서 String 형태의 문자열은 이미 문자열 형태라고 하는데.. ID, PW 를 Base64 인코딩하시는 이유가 있을까요?찾아본 바로는, 있다면 시스템간의 호환성 문제일거라고 생각하는데, 호환성 문제라고 찾았본 케이스들은 너무 예전 시스템이라고하니 와닿지 않네요. 찾아본 내용들은 책이 아니라, 인터넷에서 검색한 내용들이라 틀렸을 수도 있습니다.실무에서는 일반적으로 ID/PW에 대해 Base64 인코딩을 사용하는 것인가요?
- 해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안드로이드 스튜디오 실기기 연결 질문입니다.
안녕하세요~ 딜리버리앱을 수없이 반복하며 나날이 하나씩 더 배워가고 있습니다^^;오늘은 제 실제 Z폴드5 기기에서 USB연결하여 에뮬레이터 구동을 해보려고 했습니다.그런데 앱은 실행이 되는데, 로그인에서 루트탭 페이지로 영 이동이 안되고 로그인 버튼이 회색으로 되었다가 다시 일정 시간이 지나면 원래의 초록 로그인 버튼으로 변경되기만 합니다.동일한 코드로 안드로이드 스튜디오 상의 에뮬레이터 작동시키면 문제없이 로그인이 패스되고 홈페이지로 이동합니다.해결할 수 있는 방법이 없을까요? 제 폰에서도 자유롭게 작동해보고 싶습니다,추가로 apk 앱으로 빌드해서 폰에 깔아봤는데 동일하게 로그인페이지에서 변화가 없었습니다. 이것은 왜그럴까요?
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
401 에러
splash screen에서 await Storage.write 하여 accessToken 을 작성해주었으나 그대로 401 에러 발생합니다. 아래 사진은 data가 없다고 하여 그대로 진행하였으나, 401에러로 인해 화면에 아무것도 보이지 않는 상황입니다
- 미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
ClipRRect - borderRadius 적용시 이미지 미노출
안녕하세요 강사님강의 너무잘보고 있습니다. 레스토랑 카드 만드는 중에 이미지를 둥글게 주는 옵션을 추가하면 아래 캡쳐본 처럼 이미지가 노출되지 않습니다.borderRadius: BorderRadius.circular(10.0), 반면에 아래 부분은 주석처리하면 이미지가 잘 노출되구요.. asset에 파일이 없는 문제는 아닐꺼같은데 혹시 어떻게 해결할수잇을까요? 일시적인 버그가 아닐까하여 재시작은 여러번 해보았습니다 borderRadius: BorderRadius.circular(10.0), import 'package:flutter/material.dart'; class RestaurantCard extends StatelessWidget { // 이미지 final Widget image; // 레스토랑 이름 final String name; // 레스토랑 태그 final List<String> tags; // 평점 갯수 final int ratingCount; // 배송 걸리는 시간 final int deliveryTime; // 배송 비용 final int deliveryFee; // 평균 평점 final double rating; const RestaurantCard({ required this.image, required this.name, required this.tags, required this.ratingCount, required this.deliveryTime, required this.deliveryFee, required this.rating, super.key }); @override Widget build(BuildContext context) { return Column( children: [ // image, ClipRRect( // borderRadius: BorderRadius.circular(10.0), child: image, ), const SizedBox(height: 16.0), Text( name ), ], ); } } 참고사항restaurant_screen.dartimport 'package:flutter/material.dart'; import 'package:untitled2/restaurant/component/restaurant_card.dart'; class RestaurantScreen extends StatelessWidget { const RestaurantScreen({super.key}); @override Widget build(BuildContext context) { return Container( child: Center( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), child: RestaurantCard( image: Image.asset( 'asset/img/food/ddeok_bok_gi.jpg', fit: BoxFit.cover ), name: '불타는 떡볶이', tags: ['떡볶이', '치즈', '매운맛'], ratingCount: 100, deliveryTime: 15, deliveryFee: 2000, rating: 4.52, ), ), ), ); } } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
- 해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Dio에러 질문입니다.
안녕하세요!처음부터 「ProductCard작업하기 」강의까지 수업을 잘듣다가 에뮬레이터 새로고침 하는 도중에 로딩에서 갑자기 멈춰버렸습니다. (현상황)에러를 찾아보던중에 예전 수업에서 build.gradle파일의 minSdkVersion 부분에 「18」로 변경하라고 말씀하셨던거 같은데 현재 파일을 확인해 보니 「flutter.minSdkVersion」로 다시 돌아왔습니다. 이부분을 다시 「18」로 수정하고 프로그램을 실행하면 다시 「flutter.minSdkVersion」로 돌아가는데 어떻게 해결해야 하나요..??그리고 제가 생각하는 에러의 원인은 위의내용이라고 생각하는데 혹시 다른 원인이 있다면 알려주실수 있을실까요?
- 해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
dependency 설치 관련 질문입니다.
현재 강의를 들으며 여러 dependency를 설치하면서 작업을 하고있습니다만, 강의에서 보여지는 버전으로 설치하는게 좋을지 현재 최신버전을 설치하는게 좋을지 궁금합니다.
- 해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
플러터 글자색, 카드색 질문
어느날 플러터를 오랜만에 켰더니 ElevatedButton 안에 있는 글자색과 Card의 배경색이 조금 푸른색으로 변경이 되어있습니다 당황해서 찾아보니 해결법도 잘 나오지 않고 이런 경우가 있었는지 궁금하네요
- 해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
restaurant_repository.dart 파일 에러 원인이 뭘까요?
안녕하세요. 플러터 초보 개발자 입니다.강의 내용 잘 따라오다가 아래 그림에서 에러가 발생합니다. lib/restaurant/repository/restaurant_repository.dart:33:33: Error: The parameter 'paginationParams' of the method 'RestaurantRepository.paginate' has type 'PaginationParams', which does not match the corresponding type, 'PaginationParams?', in the overridden method, 'IBasePaginationRepository.paginate'. - 'PaginationParams' is from 'package:rest/common/model/pagination_params.dart' ('lib/common/model/pagination_params.dart').Change to a supertype of 'PaginationParams?', or, for a covariant parameter, a subtype. @Queries() PaginationParams paginationParams = const PaginationParams(), ^lib/common/repository/base_pagination_repository.dart:7:31: Context: This is the overridden method ('paginate'). Future<CursorPagination<T>> paginate({ ^Target kernel_snapshot failed: Exception