This commit is contained in:
Juan Felipe Duarte
2023-03-24 19:43:37 -05:00
parent 203912d362
commit 5e76777cc8
6 changed files with 256 additions and 10 deletions
+12 -10
View File
@@ -1,9 +1,11 @@
import 'package:flutter/material.dart';
import 'package:prosappco/src/provider/google_sign.dart';
import 'package:prosappco/src/screens/login.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:provider/provider.dart';
// import 'package:firebase_auth/firebase_auth.dart';
void main() {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
@@ -11,11 +13,11 @@ class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
debugShowCheckedModeBanner: false,
title: 'ProsApp',
home: LoginScreen(),
);
}
Widget build(BuildContext context) => ChangeNotifierProvider(
create: (context) => GoogleSignProvider(),
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'ProsApp',
home: LoginScreen(),
));
}
+28
View File
@@ -0,0 +1,28 @@
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';
class GoogleSignProvider extends ChangeNotifier {
final googleSign = GoogleSignIn();
GoogleSignInAccount? _user;
GoogleSignInAccount get user => _user!;
Future googleLogin() async {
final googleUser = await googleSign.signIn();
if (googleUser == null) return;
_user = googleUser;
final googleAuth = await googleUser.authentication;
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken, idToken: googleAuth.idToken);
await FirebaseAuth.instance.signInWithCredential(credential);
notifyListeners();
}
}
+24
View File
@@ -1,4 +1,7 @@
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:prosappco/src/provider/google_sign.dart';
import 'package:provider/provider.dart';
class LoginScreen extends StatefulWidget {
const LoginScreen({super.key});
@@ -63,6 +66,27 @@ class _LoginScreenState extends State<LoginScreen> {
),
),
const Text('Un código sera enviado a este numero de celular'),
ElevatedButton(
onPressed: () {
final provider =
Provider.of<GoogleSignProvider>(context, listen: false);
provider.googleLogin();
},
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(
15), // Establece el radio de los bordes
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FaIcon(FontAwesomeIcons.google), // Icono del botón
SizedBox(width: 5), // Espacio entre el icono y el texto
Text('Entrar con Google'), // Texto del botón
],
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 80.0),
child: Container(
@@ -5,6 +5,10 @@
import FlutterMacOS
import Foundation
import firebase_auth
import firebase_core
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
}
+182
View File
@@ -1,6 +1,14 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
sha256: "330d7fcbb72624f5b6d374af8b059b0ef4ba96ba5b8987f874964a1287eb617d"
url: "https://pub.dev"
source: hosted
version: "1.0.18"
async:
dependency: transitive
description:
@@ -57,6 +65,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.1"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
sha256: "94c229e296a5b9ee5c8cda918e0b320e3a0cc4f6a349cd410c427da347f2a244"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
sha256: "1217d8aa313b49d58b489aa8879544563abc8793d9612ff20d8df193f202aedc"
url: "https://pub.dev"
source: hosted
version: "6.12.0"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
sha256: bf7f1a87995a58b0f07dc617806dabd7ff25c64be7fa47b41ab1bb9a485b0062
url: "https://pub.dev"
source: hosted
version: "5.2.10"
firebase_core:
dependency: transitive
description:
name: firebase_core
sha256: "75f747cafd7cbd6c00b908e3a7aa59fc31593d46ba8165d9ee8a79e69464a394"
url: "https://pub.dev"
source: hosted
version: "2.8.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55"
url: "https://pub.dev"
source: hosted
version: "4.5.3"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "0c1cf1f1022d2245ac117443bb95207952ca770281524d2908e323bc063fb8ff"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
flutter:
dependency: "direct main"
description: flutter
@@ -75,6 +131,91 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter:
dependency: "direct main"
description:
name: font_awesome_flutter
sha256: "959ef4add147753f990b4a7c6cccb746d5792dbdc81b1cde99e62e7edb31b206"
url: "https://pub.dev"
source: hosted
version: "10.4.0"
google_identity_services_web:
dependency: transitive
description:
name: google_identity_services_web
sha256: "5d9af2f1fa192f2629a266d038ee9307b0abe729a4f1b454dd21b414f5e7d381"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
google_sign_in:
dependency: "direct main"
description:
name: google_sign_in
sha256: "750d08ffb4cd469f13068d15844ffd1d60c7ac1ca3c815918ba4ce4af22a2ddb"
url: "https://pub.dev"
source: hosted
version: "6.0.2"
google_sign_in_android:
dependency: transitive
description:
name: google_sign_in_android
sha256: "6a740e8498920ecf5fc2849ae0e4412536d700230bc3169493a1d031fdfe1cca"
url: "https://pub.dev"
source: hosted
version: "6.1.8"
google_sign_in_ios:
dependency: transitive
description:
name: google_sign_in_ios
sha256: "2e1df687b17f7fddcaf9a0c7f994d0d19b5d41e8ce1d943013befd0a0ae67403"
url: "https://pub.dev"
source: hosted
version: "5.6.1"
google_sign_in_platform_interface:
dependency: transitive
description:
name: google_sign_in_platform_interface
sha256: fece762f0d2dd762ebde43ad70662a209ff6ee034111976549c392f7763d9264
url: "https://pub.dev"
source: hosted
version: "2.3.1"
google_sign_in_web:
dependency: transitive
description:
name: google_sign_in_web
sha256: "9f883b9b525297663510dfbbe8b04d39715aa0abba430851f501b7d1e4b0f465"
url: "https://pub.dev"
source: hosted
version: "0.11.0+2"
http:
dependency: transitive
description:
name: http
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
intl:
dependency: transitive
description:
name: intl
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted
version: "0.17.0"
js:
dependency: transitive
description:
@@ -115,6 +256,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.0"
nested:
dependency: transitive
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
path:
dependency: transitive
description:
@@ -123,6 +272,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.2"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
provider:
dependency: "direct main"
description:
name: provider
sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
url: "https://pub.dev"
source: hosted
version: "6.0.5"
quiver:
dependency: transitive
description:
name: quiver
sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
url: "https://pub.dev"
source: hosted
version: "3.2.1"
sky_engine:
dependency: transitive
description: flutter
@@ -176,6 +349,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.4.16"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
vector_math:
dependency: transitive
description:
@@ -186,3 +367,4 @@ packages:
version: "2.1.4"
sdks:
dart: ">=2.19.3 <3.0.0"
flutter: ">=3.3.0"
+6
View File
@@ -36,6 +36,12 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
# Google Sign In
firebase_auth: ^4.3.0
google_sign_in: ^6.0.2
provider: ^6.0.5
font_awesome_flutter: ^10.4.0
dev_dependencies:
flutter_test:
sdk: flutter