update boton google

This commit is contained in:
Juan Felipe Duarte
2023-03-28 17:43:42 -05:00
parent 1884b82d83
commit 2e6275063b
3 changed files with 46 additions and 21 deletions
+23
View File
@@ -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<UserCredential> 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});
+2 -16
View File
@@ -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<LoginEmailScreen> createState() => _LoginEmailScreenState();
}
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = GoogleSignIn();
Future<UserCredential> 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<LoginEmailScreen> {
bool _obscureText = true;
@@ -125,7 +111,6 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(width: 5),
Text(
'Entrar con Google ',
style: TextStyle(
@@ -134,6 +119,7 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
fontSize: 18,
),
),
SizedBox(width: 5),
FaIcon(FontAwesomeIcons.google),
],
)),
+21 -5
View File
@@ -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<RegisterScreen> {
Padding(
padding: EdgeInsets.only(bottom: 20),
child: ElevatedButton(
onPressed: () {
final provider = Provider.of<GoogleSignProvider>(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<RegisterScreen> {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(width: 5),
Text(
'Entrar con Google ',
style: TextStyle(
@@ -101,6 +116,7 @@ class _RegisterScreenState extends State<RegisterScreen> {
fontSize: 18,
),
),
SizedBox(width: 5),
FaIcon(FontAwesomeIcons.google),
],
)),