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

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

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

안녕하세요.

firebase create Project가 안됩니다.

어느부분을 잘못했는지 알수가 없네요.




GCP TOS는 눌러서 동의 했는데

우측에 Firebase TOS는 누르면 아래와 같은 에러가 발생합니다.

excel-fomula-g-p-t-h5f7z8 프로젝트에 Firebase를 추가할 수 없습니다(이유: The caller does not have permission).




작성한 코드 및 에러 메세지

import '/flutter_flow/flutter_flow_theme.dart';

import '/flutter_flow/flutter_flow_util.dart';

import '/flutter_flow/flutter_flow_widgets.dart';

import 'dart:ui';

import 'package:flutter/material.dart';

import 'package:google_fonts/google_fonts.dart';

import 'package:provider/provider.dart';


import 'home_model.dart';

export 'home_model.dart';


class HomeWidget extends StatefulWidget {

 const HomeWidget({super.key});


 @override

 State<HomeWidget> createState() => _HomeWidgetState();

}


class _HomeWidgetState extends State<HomeWidget> {

 late HomeModel _model;


 final scaffoldKey = GlobalKey<ScaffoldState>();


 @override

 void initState() {

  super.initState();

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


  _model.textController1 ??= TextEditingController();

  _model.textFieldFocusNode1 ??= FocusNode();


  _model.textController2 ??= TextEditingController();

  _model.textFieldFocusNode2 ??= FocusNode();

 }


 @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).primaryBackground,

    drawer: Drawer(

     elevation: 16,

     child: Padding(

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

      child: Column(

       mainAxisSize: MainAxisSize.max,

       children: [

        InkWell(

         splashColor: Colors.transparent,

         focusColor: Colors.transparent,

         hoverColor: Colors.transparent,

         highlightColor: Colors.transparent,

         onTap: () async {

          context.pushNamed('Home');

         },

         child: Material(

          color: Colors.transparent,

          child: ListTile(

           title: Text(

            'Home',

            style: FlutterFlowTheme.of(context).titleLarge.override(

               fontFamily: 'Pretendard',

               letterSpacing: 0.0,

               useGoogleFonts: false,

              ),

           ),

           trailing: Icon(

            Icons.arrow_forward_ios_rounded,

            color: FlutterFlowTheme.of(context).secondaryText,

            size: 24,

           ),

           tileColor:

             FlutterFlowTheme.of(context).secondaryBackground,

           dense: false,

           contentPadding:

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

           shape: RoundedRectangleBorder(

            borderRadius: BorderRadius.circular(8),

           ),

          ),

         ),

        ),

        InkWell(

         splashColor: Colors.transparent,

         focusColor: Colors.transparent,

         hoverColor: Colors.transparent,

         highlightColor: Colors.transparent,

         onTap: () async {

          context.pushNamed('History');

         },

         child: Material(

          color: Colors.transparent,

          child: ListTile(

           title: Text(

            'History',

            style: FlutterFlowTheme.of(context).titleLarge.override(

               fontFamily: 'Pretendard',

               letterSpacing: 0.0,

               useGoogleFonts: false,

              ),

           ),

           trailing: Icon(

            Icons.arrow_forward_ios_rounded,

            color: FlutterFlowTheme.of(context).secondaryText,

            size: 24,

           ),

           tileColor:

             FlutterFlowTheme.of(context).secondaryBackground,

           dense: false,

           contentPadding:

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

           shape: RoundedRectangleBorder(

            borderRadius: BorderRadius.circular(8),

           ),

          ),

         ),

        ),

       ].addToStart(SizedBox(height: 64)),

      ),

     ),

    ),

    appBar: AppBar(

     backgroundColor: FlutterFlowTheme.of(context).primary,

     automaticallyImplyLeading: true,

     title: Text(

      'Home',

      style: FlutterFlowTheme.of(context).headlineMedium.override(

         fontFamily: 'Pretendard',

         color: Colors.white,

         fontSize: 22,

         letterSpacing: 0.0,

         useGoogleFonts: false,

        ),

     ),

     actions: [],

     centerTitle: false,

     elevation: 2,

    ),

    body: SafeArea(

     top: true,

     child: Padding(

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

      child: Column(

       mainAxisSize: MainAxisSize.max,

       children: [

        Align(

         alignment: AlignmentDirectional(-1, -1),

         child: Text(

          '입력하기',

          style: FlutterFlowTheme.of(context).titleLarge.override(

             fontFamily: 'Pretendard',

             letterSpacing: 0.0,

             useGoogleFonts: false,

            ),

         ),

        ),

        Container(

         width: MediaQuery.sizeOf(context).width,

         child: TextFormField(

          controller: _model.textController1,

          focusNode: _model.textFieldFocusNode1,

          autofocus: false,

          obscureText: false,

          decoration: InputDecoration(

           isDense: true,

           labelStyle:

             FlutterFlowTheme.of(context).labelMedium.override(

                fontFamily: 'Pretendard',

                letterSpacing: 0.0,

                useGoogleFonts: false,

               ),

           hintText: '만들고 싶은 식',

           hintStyle:

             FlutterFlowTheme.of(context).labelMedium.override(

                fontFamily: 'Pretendard',

                letterSpacing: 0.0,

                useGoogleFonts: false,

               ),

           enabledBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: FlutterFlowTheme.of(context).tertiary,

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           focusedBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: Color(0x00000000),

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           errorBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: FlutterFlowTheme.of(context).error,

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           focusedErrorBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: FlutterFlowTheme.of(context).error,

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           filled: true,

           fillColor: FlutterFlowTheme.of(context).alternate,

          ),

          style: FlutterFlowTheme.of(context).bodyMedium.override(

             fontFamily: 'Pretendard',

             letterSpacing: 0.0,

             useGoogleFonts: false,

            ),

          textAlign: TextAlign.start,

          maxLines: 5,

          cursorColor: FlutterFlowTheme.of(context).primaryText,

          validator:

            _model.textController1Validator.asValidator(context),

         ),

        ),

        Align(

         alignment: AlignmentDirectional(-1, -1),

         child: FFButtonWidget(

          onPressed: () {

           print('Button pressed ...');

          },

          text: '제출',

          options: FFButtonOptions(

           height: 40,

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

           iconPadding: EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),

           color: FlutterFlowTheme.of(context).primary,

           textStyle:

             FlutterFlowTheme.of(context).titleSmall.override(

                fontFamily: 'Pretendard',

                color: Colors.white,

                letterSpacing: 0.0,

                useGoogleFonts: false,

               ),

           elevation: 0,

           borderRadius: BorderRadius.circular(8),

          ),

         ),

        ),

        Row(

         mainAxisSize: MainAxisSize.max,

         mainAxisAlignment: MainAxisAlignment.spaceBetween,

         children: [

          Text(

           '출력결과',

           style: FlutterFlowTheme.of(context).titleLarge.override(

              fontFamily: 'Pretendard',

              letterSpacing: 0.0,

              useGoogleFonts: false,

             ),

          ),

          Row(

           mainAxisSize: MainAxisSize.max,

           children: [

            Text(

             '복사하기',

             style:

               FlutterFlowTheme.of(context).bodyMedium.override(

                  fontFamily: 'Pretendard',

                  letterSpacing: 0.0,

                  useGoogleFonts: false,

                 ),

            ),

            Icon(

             Icons.content_copy,

             color: FlutterFlowTheme.of(context).primaryText,

             size: 24,

            ),

           ],

          ),

         ],

        ),

        Container(

         width: MediaQuery.sizeOf(context).width,

         child: TextFormField(

          controller: _model.textController2,

          focusNode: _model.textFieldFocusNode2,

          autofocus: false,

          obscureText: false,

          decoration: InputDecoration(

           isDense: true,

           labelStyle:

             FlutterFlowTheme.of(context).labelMedium.override(

                fontFamily: 'Pretendard',

                letterSpacing: 0.0,

                useGoogleFonts: false,

               ),

           hintText: '결과값',

           hintStyle:

             FlutterFlowTheme.of(context).labelMedium.override(

                fontFamily: 'Pretendard',

                letterSpacing: 0.0,

                useGoogleFonts: false,

               ),

           enabledBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: FlutterFlowTheme.of(context).tertiary,

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           focusedBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: Color(0x00000000),

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           errorBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: FlutterFlowTheme.of(context).error,

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           focusedErrorBorder: OutlineInputBorder(

            borderSide: BorderSide(

             color: FlutterFlowTheme.of(context).error,

             width: 1,

            ),

            borderRadius: BorderRadius.circular(8),

           ),

           filled: true,

           fillColor: FlutterFlowTheme.of(context).alternate,

          ),

          style: FlutterFlowTheme.of(context).bodyMedium.override(

             fontFamily: 'Pretendard',

             letterSpacing: 0.0,

             useGoogleFonts: false,

            ),

          maxLines: 5,

          cursorColor: FlutterFlowTheme.of(context).primaryText,

          validator:

            _model.textController2Validator.asValidator(context),

         ),

        ),

       ].divide(SizedBox(height: 16)).addToStart(SizedBox(height: 32)),

      ),

     ),

    ),

   ),

  );

 }

}

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴