fireflutter 0.3.29 copy "fireflutter: ^0.3.29" to clipboard
fireflutter: ^0.3.29 copied to clipboard

A lightning-fast, robust CMS for seamless real-time content management in app development.

example/lib/main.dart

// import 'dart:async';

// import 'package:example/firebase_options.dart';
// import 'package:firebase_auth/firebase_auth.dart';
// import 'package:firebase_core/firebase_core.dart';
// import 'package:fireflutter/fireflutter.dart';
// import 'package:flutter/material.dart';

// final GlobalKey<NavigatorState> navigatorKey = GlobalKey();
// BuildContext get globalContext => navigatorKey.currentState!.overlay!.context;

// void main() async {
//   runZonedGuarded(
//     () async {
//       WidgetsFlutterBinding.ensureInitialized();
//       await Firebase.initializeApp(
//         options: DefaultFirebaseOptions.currentPlatform,
//       );

//       runApp(const MyApp());

//       FlutterError.onError = (FlutterErrorDetails details) {
//         FlutterError.dumpErrorToConsole(details);
//       };
//     },
//     zoneErrorHandler,
//   );
// }

// class MyApp extends StatefulWidget {
//   const MyApp({super.key});

//   @override
//   State<MyApp> createState() => _MyAppState();
// }

// class _MyAppState extends State<MyApp> {
//   @override
//   void initState() {
//     super.initState();
//     UserService.instance.init();
//   }

//   @override
//   Widget build(BuildContext context) {
//     return MaterialApp(
//       debugShowCheckedModeBanner: false,
//       theme: defaultLightTheme(context: context),
//       navigatorKey: navigatorKey,
//       home: const MyHomePage(),
//     );
//   }
// }

// class MyHomePage extends StatefulWidget {
//   const MyHomePage({super.key});

//   @override
//   State<MyHomePage> createState() => _MyHomePageState();
// }

// class _MyHomePageState extends State<MyHomePage> {
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       appBar: AppBar(
//         backgroundColor: Theme.of(context).colorScheme.inversePrimary,
//         title: const Text('FireFlutter Quick Start App'),
//       ),
//       body: Column(
//         children: [
//           AuthReady(
//             builder: (uid) => Padding(
//               padding: const EdgeInsets.all(24),
//               child: Column(
//                 crossAxisAlignment: CrossAxisAlignment.start,
//                 children: [
//                   Text('UID: $uid'),
//                   const SizedBox(height: 24),
//                   const Text('User menu'),
//                   Wrap(
//                     spacing: 8,
//                     children: [
//                       ElevatedButton(
//                         onPressed: () => UserService.instance
//                             .showProfileUpdateScreen(context: context),
//                         child: const Text('Profile'),
//                       ),
//                       ElevatedButton(
//                         onPressed: () => UserService.instance.signOut(),
//                         child: const Text('Sign Out'),
//                       ),
//                       ElevatedButton(
//                         onPressed: () => UserService.instance.signOut(),
//                         child: const Text('Blocks'),
//                       ),
//                       ElevatedButton(
//                         onPressed: () => UserService.instance.signOut(),
//                         child: const Text('Reports'),
//                       ),
//                     ],
//                   ),
//                   const SizedBox(height: 24),
//                   Wrap(
//                     spacing: 8,
//                     children: [
//                       ElevatedButton(
//                         onPressed: () => UserService.instance
//                             .showProfileUpdateScreen(context: context),
//                         child: const Text('User Search'),
//                       ),
//                       ElevatedButton(
//                         onPressed: () => UserService.instance.signOut(),
//                         child: const Text('Sign Out'),
//                       ),
//                     ],
//                   ),
//                   const SizedBox(height: 24),
//                   const NewProfilePhotos(),
//                 ],
//               ),
//             ),
//             notLoginBuilder: () => Theme(
//               data: bigElevatedButtonTheme(context),
//               child: const SimpleEmailPasswordLoginForm(),
//             ),
//           ),
//         ],
//       ),
//     );
//   }
// }

// zoneErrorHandler(e, stackTrace) {
//   dog("----> runZoneGuarded() : Exceptions outside flutter framework.");
//   dog("--------------------------------------------------------------");
//   dog("---> runtimeType: ${e.runtimeType}");

//   if (e is FirebaseAuthException) {
//     String message = "${e.code} - ${e.message}";
//     if (e.code == 'invalid-email') {
//       message = '잘못된 이메일 주소입니다.';
//     } else if (e.code == 'weak-password') {
//       message = '비밀번호를 더 어렵게 해 주세요. 대소문자, 숫자 및 특수문자를 포함하여 6자 이상으로 입력해주세요.';
//     } else if (e.code == 'email-already-in-use') {
//       message = '메일 주소 또는 비밀번호를 잘못 입력하였습니다.';
//     }
//     toast(context: globalContext, message: '로그인 에러 :  $message');
//   } else if (e is FirebaseException) {
//     dog("FirebaseException :  ${e.code}, ${e.message}");
//     if (e.plugin == 'firebase_storage') {
//       if (e.code == 'unknown') {
//         error(
//             context: globalContext,
//             message: '파일 업로드 에러 :  ${e.message}\n\nStorage 서비스를 확인해주세요.');
//       } else {
//         error(context: globalContext, message: e.toString());
//       }
//     } else {
//       error(context: globalContext, message: e.toString());
//     }
//   } else if (e is FireFlutterException) {
//     dog("FireshipException: (${e.code}) - ${e.message}");
//     if (e.code == 'input-email') {
//       error(context: globalContext, message: '이메일 주소를 입력해주세요.');
//     } else if (e.code == 'input-password') {
//       error(context: globalContext, message: '비밀번호를 입력해주세요.');
//     } else {
//       error(context: globalContext, title: e.code, message: e.message);
//     }
//   } else {
//     dog("Unknown Error :  $e");
//     error(context: globalContext, message: e.toString());
//   }
//   debugPrintStack(stackTrace: stackTrace);
// }

// import 'package:example/firebase_options.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:fireflutter/fireflutter.dart';
import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
      // options: DefaultFirebaseOptions.currentPlatform,
      );

  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    UserService.instance.init();
  }

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Column(
        children: [
          Login(
            yes: (uid) => Column(
              children: [
                Text('UID: $uid'),
                ElevatedButton(
                  onPressed: () => UserService.instance.signOut(),
                  child: const Text('로그아웃'),
                ),
              ],
            ),
            no: () => const SimpleEmailPasswordLoginForm(),
          ),
        ],
      ),
    );
  }
}