From 2e6275063ba97b3685159eac7b4c3840b0f63859 Mon Sep 17 00:00:00 2001 From: Juan Felipe Duarte <70235683+DuarteJFelipe@users.noreply.github.com> Date: Tue, 28 Mar 2023 17:43:42 -0500 Subject: [PATCH] update boton google --- lib/main.dart | 23 +++++++++++++++++++++++ lib/src/screens/login_email.dart | 18 ++---------------- lib/src/screens/register.dart | 26 +++++++++++++++++++++----- 3 files changed, 46 insertions(+), 21 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 1d3460e..7a856af 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,14 @@ import 'package:firebase_core/firebase_core.dart'; import 'package:provider/provider.dart'; import 'package:firebase_core/firebase_core.dart'; import 'firebase_options.dart'; +import 'package:prosappco/src/provider/google_sign.dart'; +import 'package:prosappco/src/screens/login.dart'; +import 'package:prosappco/src/screens/welcome.dart'; +import 'package:provider/provider.dart'; + +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:google_sign_in/google_sign_in.dart'; +import 'package:prosappco/src/screens/register.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -14,6 +22,21 @@ void main() async { runApp(const MyApp()); } +final FirebaseAuth _auth = FirebaseAuth.instance; +final GoogleSignIn googleSignIn = GoogleSignIn(); +Future signInWithGoogle() async { + final GoogleSignInAccount? googleSignInAccount = await googleSignIn.signIn(); + final GoogleSignInAuthentication googleSignInAuthentication = + await googleSignInAccount!.authentication; + + final AuthCredential credential = GoogleAuthProvider.credential( + accessToken: googleSignInAuthentication.accessToken, + idToken: googleSignInAuthentication.idToken, + ); + + return await _auth.signInWithCredential(credential); +} + class MyApp extends StatelessWidget { const MyApp({super.key}); diff --git a/lib/src/screens/login_email.dart b/lib/src/screens/login_email.dart index 53b0b00..ae05567 100644 --- a/lib/src/screens/login_email.dart +++ b/lib/src/screens/login_email.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:prosappco/main.dart'; import 'package:prosappco/src/provider/google_sign.dart'; import 'package:prosappco/src/screens/login.dart'; import 'package:prosappco/src/screens/welcome.dart'; @@ -16,21 +17,6 @@ class LoginEmailScreen extends StatefulWidget { State createState() => _LoginEmailScreenState(); } -final FirebaseAuth _auth = FirebaseAuth.instance; -final GoogleSignIn googleSignIn = GoogleSignIn(); -Future signInWithGoogle() async { - final GoogleSignInAccount? googleSignInAccount = await googleSignIn.signIn(); - final GoogleSignInAuthentication googleSignInAuthentication = - await googleSignInAccount!.authentication; - - final AuthCredential credential = GoogleAuthProvider.credential( - accessToken: googleSignInAuthentication.accessToken, - idToken: googleSignInAuthentication.idToken, - ); - - return await _auth.signInWithCredential(credential); -} - class _LoginEmailScreenState extends State { bool _obscureText = true; @@ -125,7 +111,6 @@ class _LoginEmailScreenState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - SizedBox(width: 5), Text( 'Entrar con Google ', style: TextStyle( @@ -134,6 +119,7 @@ class _LoginEmailScreenState extends State { fontSize: 18, ), ), + SizedBox(width: 5), FaIcon(FontAwesomeIcons.google), ], )), diff --git a/lib/src/screens/register.dart b/lib/src/screens/register.dart index 2255065..2b2b7aa 100644 --- a/lib/src/screens/register.dart +++ b/lib/src/screens/register.dart @@ -1,7 +1,10 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:prosappco/main.dart'; import 'package:prosappco/src/provider/google_sign.dart'; import 'package:prosappco/src/screens/login.dart'; +import 'package:prosappco/src/screens/welcome.dart'; import 'package:provider/provider.dart'; class RegisterScreen extends StatefulWidget { @@ -76,10 +79,23 @@ class _RegisterScreenState extends State { Padding( padding: EdgeInsets.only(bottom: 20), child: ElevatedButton( - onPressed: () { - final provider = Provider.of(context, - listen: false); - provider.googleLogin(); + onPressed: () async { + try { + final UserCredential userCredential = + await signInWithGoogle(); + // Si la autenticación es exitosa, realiza una acción + // Por ejemplo, navegar a otra pantalla: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => WelcomeScreen())); + } catch (e) { + // Si ocurre un error durante la autenticación, muestra un mensaje al usuario + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text( + 'Error al iniciar sesion intentalo de nuevo'), + )); + } }, style: ElevatedButton.styleFrom( primary: Color(0xFF2BA4EC), @@ -92,7 +108,6 @@ class _RegisterScreenState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - SizedBox(width: 5), Text( 'Entrar con Google ', style: TextStyle( @@ -101,6 +116,7 @@ class _RegisterScreenState extends State { fontSize: 18, ), ), + SizedBox(width: 5), FaIcon(FontAwesomeIcons.google), ], )),