커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
create account 에서 넘어가지 않습니다
[왕초보] 노코드로 수익형 AI 앱 만들기
2주차
북마크
이*정
댓글
3
추천
0
조회수
10
조회수
10
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


2주차 숙제하려고 복습 중인데,

create account에서 다음 화면으로 넘어가질 않는데

어떤 부분을 수정해야 할까요ㅜㅜ 도와주세요.

create account 부분 코드 함께 전달드립니다.


스파르타 즉문즉답




작성한 코드 및 에러 메세지

import '/auth/firebase_auth/auth_util.dart';

import '/flutter_flow/flutter_flow_animations.dart';

import '/flutter_flow/flutter_flow_theme.dart';

import '/flutter_flow/flutter_flow_util.dart';

import '/flutter_flow/flutter_flow_widgets.dart';

import 'dart:math';

import 'dart:ui';

import 'package:flutter/gestures.dart';

import 'package:flutter/material.dart';

import 'package:flutter/scheduler.dart';

import 'package:flutter_animate/flutter_animate.dart';

import 'package:font_awesome_flutter/font_awesome_flutter.dart';

import 'package:google_fonts/google_fonts.dart';

import 'package:provider/provider.dart';


import 'auth2_create_model.dart';

export 'auth2_create_model.dart';


class Auth2CreateWidget extends StatefulWidget {

 const Auth2CreateWidget({super.key});


 @override

 State<Auth2CreateWidget> createState() => _Auth2CreateWidgetState();

}


class _Auth2CreateWidgetState extends State<Auth2CreateWidget>

  with TickerProviderStateMixin {

 late Auth2CreateModel _model;


 final scaffoldKey = GlobalKey<ScaffoldState>();


 final animationsMap = <String, AnimationInfo>{};


 @override

 void initState() {

  super.initState();

  _model = createModel(context, () => Auth2CreateModel());


  _model.emailAddressTextController ??= TextEditingController();

  _model.emailAddressFocusNode ??= FocusNode();


  _model.passwordTextController ??= TextEditingController();

  _model.passwordFocusNode ??= FocusNode();


  animationsMap.addAll({

   'containerOnPageLoadAnimation': AnimationInfo(

    trigger: AnimationTrigger.onPageLoad,

    effectsBuilder: () => [

     VisibilityEffect(duration: 1.ms),

     FadeEffect(

      curve: Curves.easeInOut,

      delay: 0.0.ms,

      duration: 300.0.ms,

      begin: 0.0,

      end: 1.0,

     ),

     MoveEffect(

      curve: Curves.easeInOut,

      delay: 0.0.ms,

      duration: 300.0.ms,

      begin: Offset(0.0, -140.0),

      end: Offset(0.0, 0.0),

     ),

     ScaleEffect(

      curve: Curves.easeInOut,

      delay: 0.0.ms,

      duration: 300.0.ms,

      begin: Offset(0.9, 0.9),

      end: Offset(1.0, 1.0),

     ),

     TiltEffect(

      curve: Curves.easeInOut,

      delay: 0.0.ms,

      duration: 300.0.ms,

      begin: Offset(0.349, 0),

      end: Offset(0, 0),

     ),

    ],

   ),

  });

 }


 @override

 void dispose() {

  _model.dispose();


  super.dispose();

 }


 @override

 Widget build(BuildContext context) {

  return GestureDetector(

   onTap: () {

    FocusScope.of(context).unfocus();

    FocusManager.instance.primaryFocus?.unfocus();

   },

   child: Scaffold(

    key: scaffoldKey,

    backgroundColor: FlutterFlowTheme.of(context).secondaryBackground,

    body: Container(

     width: double.infinity,

     height: double.infinity,

     decoration: BoxDecoration(

      gradient: LinearGradient(

       colors: [

        FlutterFlowTheme.of(context).primary,

        FlutterFlowTheme.of(context).tertiary

       ],

       stops: [0, 1],

       begin: AlignmentDirectional(0.87, -1),

       end: AlignmentDirectional(-0.87, 1),

      ),

     ),

     alignment: AlignmentDirectional(0, -1),

     child: SingleChildScrollView(

      child: Column(

       mainAxisSize: MainAxisSize.max,

       mainAxisAlignment: MainAxisAlignment.center,

       children: [

        Padding(

         padding: EdgeInsetsDirectional.fromSTEB(0, 70, 0, 32),

         child: Container(

          width: 200,

          height: 70,

          decoration: BoxDecoration(

           borderRadius: BorderRadius.circular(16),

          ),

          alignment: AlignmentDirectional(0, 0),

          child: Row(

           mainAxisSize: MainAxisSize.max,

           mainAxisAlignment: MainAxisAlignment.center,

           children: [

            Padding(

             padding: EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),

             child: Icon(

              Icons.flourescent_rounded,

              color: FlutterFlowTheme.of(context).info,

              size: 44,

             ),

            ),

            Text(

             'flow.io',

             style: FlutterFlowTheme.of(context)

               .displaySmall

               .override(

                font: GoogleFonts.interTight(),

                color: FlutterFlowTheme.of(context).info,

                letterSpacing: 0.0,

               ),

            ),

           ],

          ),

         ),

        ),

        Padding(

         padding: EdgeInsets.all(16),

         child: Container(

          width: double.infinity,

          constraints: BoxConstraints(

           maxWidth: 570,

          ),

          decoration: BoxDecoration(

           color: FlutterFlowTheme.of(context).secondaryBackground,

           boxShadow: [

            BoxShadow(

             blurRadius: 4,

             color: Color(0x33000000),

             offset: Offset(

              0,

              2,

             ),

            )

           ],

           borderRadius: BorderRadius.circular(12),

          ),

          child: Align(

           alignment: AlignmentDirectional(0, 0),

           child: Padding(

            padding: EdgeInsets.all(32),

            child: Column(

             mainAxisSize: MainAxisSize.max,

             crossAxisAlignment: CrossAxisAlignment.start,

             children: [

              Text(

               'Get Started',

               textAlign: TextAlign.center,

               style: FlutterFlowTheme.of(context)

                 .displaySmall

                 .override(

                  font: GoogleFonts.interTight(),

                  letterSpacing: 0.0,

                 ),

              ),

              Padding(

               padding:

                 EdgeInsetsDirectional.fromSTEB(0, 8, 0, 24),

               child: Text(

                'Create an account by using the form below.',

                textAlign: TextAlign.start,

                style: FlutterFlowTheme.of(context)

                  .labelLarge

                  .override(

                   font: GoogleFonts.inter(),

                   letterSpacing: 0.0,

                  ),

               ),

              ),

              Padding(

               padding:

                 EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),

               child: Container(

                width: double.infinity,

                child: TextFormField(

                 controller: _model.emailAddressTextController,

                 focusNode: _model.emailAddressFocusNode,

                 autofocus: true,

                 autofillHints: [AutofillHints.email],

                 obscureText: false,

                 decoration: InputDecoration(

                  labelText: 'Email',

                  labelStyle: FlutterFlowTheme.of(context)

                    .labelLarge

                    .override(

                     font: GoogleFonts.inter(),

                     letterSpacing: 0.0,

                    ),

                  enabledBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color: FlutterFlowTheme.of(context)

                      .alternate,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  focusedBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color: FlutterFlowTheme.of(context)

                      .primary,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  errorBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color:

                      FlutterFlowTheme.of(context).error,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  focusedErrorBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color:

                      FlutterFlowTheme.of(context).error,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  filled: true,

                  fillColor: FlutterFlowTheme.of(context)

                    .primaryBackground,

                 ),

                 style: FlutterFlowTheme.of(context)

                   .bodyLarge

                   .override(

                    font: GoogleFonts.inter(),

                    letterSpacing: 0.0,

                   ),

                 keyboardType: TextInputType.emailAddress,

                 cursorColor:

                   FlutterFlowTheme.of(context).primary,

                 validator: _model

                   .emailAddressTextControllerValidator

                   .asValidator(context),

                ),

               ),

              ),

              Padding(

               padding:

                 EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),

               child: Container(

                width: double.infinity,

                child: TextFormField(

                 controller: _model.passwordTextController,

                 focusNode: _model.passwordFocusNode,

                 autofocus: true,

                 autofillHints: [AutofillHints.password],

                 obscureText: !_model.passwordVisibility,

                 decoration: InputDecoration(

                  labelText: 'Password',

                  labelStyle: FlutterFlowTheme.of(context)

                    .labelLarge

                    .override(

                     font: GoogleFonts.inter(),

                     letterSpacing: 0.0,

                    ),

                  enabledBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color: FlutterFlowTheme.of(context)

                      .alternate,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  focusedBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color: FlutterFlowTheme.of(context)

                      .primary,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  errorBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color:

                      FlutterFlowTheme.of(context).error,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  focusedErrorBorder: OutlineInputBorder(

                   borderSide: BorderSide(

                    color:

                      FlutterFlowTheme.of(context).error,

                    width: 2,

                   ),

                   borderRadius: BorderRadius.circular(12),

                  ),

                  filled: true,

                  fillColor: FlutterFlowTheme.of(context)

                    .primaryBackground,

                  suffixIcon: InkWell(

                   onTap: () => safeSetState(

                    () => _model.passwordVisibility =

                      !_model.passwordVisibility,

                   ),

                   focusNode: FocusNode(skipTraversal: true),

                   child: Icon(

                    _model.passwordVisibility

                      ? Icons.visibility_outlined

                      : Icons.visibility_off_outlined,

                    color: FlutterFlowTheme.of(context)

                      .secondaryText,

                    size: 24,

                   ),

                  ),

                 ),

                 style: FlutterFlowTheme.of(context)

                   .bodyLarge

                   .override(

                    font: GoogleFonts.inter(),

                    letterSpacing: 0.0,

                   ),

                 cursorColor:

                   FlutterFlowTheme.of(context).primary,

                 validator: _model

                   .passwordTextControllerValidator

                   .asValidator(context),

                ),

               ),

              ),

              Padding(

               padding:

                 EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),

               child: FFButtonWidget(

                onPressed: () async {

                 GoRouter.of(context).prepareAuthEvent();


                 final user =

                   await authManager.createAccountWithEmail(

                  context,

                  _model.emailAddressTextController.text,

                  _model.passwordTextController.text,

                 );

                 if (user == null) {

                  return;

                 }


                 context.goNamedAuth(

                   'auth_2_createProfile', context.mounted);

                },

                text: 'Create Account',

                options: FFButtonOptions(

                 width: double.infinity,

                 height: 44,

                 padding: EdgeInsetsDirectional.fromSTEB(

                   0, 0, 0, 0),

                 iconPadding: EdgeInsetsDirectional.fromSTEB(

                   0, 0, 0, 0),

                 color: FlutterFlowTheme.of(context).primary,

                 textStyle: FlutterFlowTheme.of(context)

                   .titleSmall

                   .override(

                    font: GoogleFonts.interTight(),

                    color: Colors.white,

                    letterSpacing: 0.0,

                   ),

                 elevation: 3,

                 borderSide: BorderSide(

                  color: Colors.transparent,

                  width: 1,

                 ),

                 borderRadius: BorderRadius.circular(12),

                ),

               ),

              ),

              Align(

               alignment: AlignmentDirectional(0, 0),

               child: Padding(

                padding: EdgeInsetsDirectional.fromSTEB(

                  16, 0, 16, 24),

                child: Text(

                 'Or sign up with',

                 textAlign: TextAlign.center,

                 style: FlutterFlowTheme.of(context)

                   .labelLarge

                   .override(

                    font: GoogleFonts.inter(),

                    letterSpacing: 0.0,

                   ),

                ),

               ),

              ),

              Padding(

               padding:

                 EdgeInsetsDirectional.fromSTEB(0, 0, 0, 16),

               child: FFButtonWidget(

                onPressed: () async {

                 GoRouter.of(context).prepareAuthEvent();

                 final user = await authManager

                   .signInWithGoogle(context);

                 if (user == null) {

                  return;

                 }


                 context.goNamedAuth('Home', context.mounted);

                },

                text: 'Continue with Google',

                icon: FaIcon(

                 FontAwesomeIcons.google,

                 size: 20,

                ),

                options: FFButtonOptions(

                 width: double.infinity,

                 height: 44,

                 padding: EdgeInsetsDirectional.fromSTEB(

                   0, 0, 0, 0),

                 iconPadding: EdgeInsetsDirectional.fromSTEB(

                   0, 0, 0, 0),

                 color: FlutterFlowTheme.of(context)

                   .secondaryBackground,

                 textStyle: FlutterFlowTheme.of(context)

                   .titleSmall

                   .override(

                    font: GoogleFonts.interTight(),

                    color: FlutterFlowTheme.of(context)

                      .primaryText,

                    letterSpacing: 0.0,

                   ),

                 elevation: 0,

                 borderSide: BorderSide(

                  color:

                    FlutterFlowTheme.of(context).alternate,

                  width: 2,

                 ),

                 borderRadius: BorderRadius.circular(12),

                 hoverColor: FlutterFlowTheme.of(context)

                   .primaryBackground,

                ),

               ),

              ),

              isAndroid

                ? Container()

                : Padding(

                  padding: EdgeInsetsDirectional.fromSTEB(

                    0, 0, 0, 16),

                  child: FFButtonWidget(

                   onPressed: () async {

                    GoRouter.of(context).prepareAuthEvent();

                    final user = await authManager

                      .signInWithApple(context);

                    if (user == null) {

                     return;

                    }


                    context.goNamedAuth(

                      'Home', context.mounted);

                   },

                   text: 'Continue with Apple',

                   icon: FaIcon(

                    FontAwesomeIcons.apple,

                    size: 20,

                   ),

                   options: FFButtonOptions(

                    width: double.infinity,

                    height: 44,

                    padding: EdgeInsetsDirectional.fromSTEB(

                      0, 0, 0, 0),

                    iconPadding:

                      EdgeInsetsDirectional.fromSTEB(

                        0, 0, 0, 0),

                    color: FlutterFlowTheme.of(context)

                      .secondaryBackground,

                    textStyle: FlutterFlowTheme.of(context)

                      .titleSmall

                      .override(

                       font: GoogleFonts.interTight(),

                       color:

                         FlutterFlowTheme.of(context)

                           .primaryText,

                       letterSpacing: 0.0,

                      ),

                    elevation: 0,

                    borderSide: BorderSide(

                     color: FlutterFlowTheme.of(context)

                       .alternate,

                     width: 2,

                    ),

                    borderRadius: BorderRadius.circular(12),

                    hoverColor: FlutterFlowTheme.of(context)

                      .primaryBackground,

                   ),

                  ),

                 ),


              // You will have to add an action on this rich text to go to your login page.

              Align(

               alignment: AlignmentDirectional(0, 0),

               child: Padding(

                padding: EdgeInsetsDirectional.fromSTEB(

                  0, 12, 0, 12),

                child: InkWell(

                 splashColor: Colors.transparent,

                 focusColor: Colors.transparent,

                 hoverColor: Colors.transparent,

                 highlightColor: Colors.transparent,

                 onTap: () async {

                  context.pushNamed(

                   'auth_2_Login',

                   extra: <String, dynamic>{

                    kTransitionInfoKey: TransitionInfo(

                     hasTransition: true,

                     transitionType:

                       PageTransitionType.fade,

                     duration: Duration(milliseconds: 200),

                    ),

                   },

                  );

                 },

                 child: RichText(

                  textScaler:

                    MediaQuery.of(context).textScaler,

                  text: TextSpan(

                   children: [

                    TextSpan(

                     text: 'Already have an account? ',

                     style: TextStyle(),

                    ),

                    TextSpan(

                     text: 'Sign in here',

                     style: FlutterFlowTheme.of(context)

                       .bodyMedium

                       .override(

                        font: GoogleFonts.inter(),

                        color:

                          FlutterFlowTheme.of(context)

                            .primary,

                        letterSpacing: 0.0,

                        fontWeight: FontWeight.w600,

                       ),

                    )

                   ],

                   style: FlutterFlowTheme.of(context)

                     .bodyMedium

                     .override(

                      font: GoogleFonts.inter(),

                      letterSpacing: 0.0,

                     ),

                  ),

                 ),

                ),

               ),

              ),

             ],

            ),

           ),

          ),

         ).animateOnPageLoad(

           animationsMap['containerOnPageLoadAnimation']!),

        ),

       ],

      ),

     ),

    ),

   ),

  );

 }

}





첨부파일 (1)

error.mp4
(262.258K)
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴