#17 Google Sign in

1 Install google_sign_in

2 provider folder => google_signin.dart
    import 'package:firebase_auth/firebase_auth.dart';
    import 'package:flutter/material.dart';
    import 'package:google_sign_in/google_sign_in.dart';
     
    class GoogleSignInProvider with ChangeNotifier {
    final googleSignIn = GoogleSignIn();
    GoogleSignInAccount? _user;
    GoogleSignInAccount get user => _user!;
    googlelogin() async {
    final googleUser = await googleSignIn.signIn();
    if (googleSignIn == 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();
    }
    }
3 in main.dart
  return MultiProvider(
    providers: [
    ChangeNotifierProvider(create: (context) {
    return Cart();
    }),
    ChangeNotifierProvider(create: (context) {
     return GoogleSignInProvider();
    }),
    ],
    child: MaterialApp(
    title: "myApp",
    debugShowCheckedModeBanner: false,
    home: StreamBuilder(
    stream: FirebaseAuth.instance.authStateChanges(),
    builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.waiting) {
    return Center(
    child: CircularProgressIndicator(
    color: Colors.white,
      ));
    } else if (snapshot.hasError) {
    return showSnackBar(context, "Something went wrong");
    } else if (snapshot.hasData) {
    return VerifyEmailPage(); // home() OR verify email
    } else {
    return Login();
    }
    },
    )),
    );

keytool' is not recognized as an internal or external command

Download files

#17.1 Access Gmail account info

😡
انت مشغل الـ AdBlock !!

ياريت تقفله لوسمحت 😊 😊

تنبيه هام ✋

إذا كانت الإعلانات مزعجة بالنسبة لك، فيُمكنك التبرع ب50$ وسيتم إيقاف الإعلانات لمدة شهر لجميع زوار الموقع 🧡 ويُمكنك التواصل معنا عن طريق صفحة الفيس بوك