0% found this document useful (0 votes)
19 views6 pages

Firebase Guide

Uploaded by

sowmisoms0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views6 pages

Firebase Guide

Uploaded by

sowmisoms0
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Firebase

Authentication for app

import 'package:beacon/app/home/appbar.dart';
import 'package:beacon/logpage/signin.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

class Login extends StatefulWidget {


const Login({super.key});

@override
State<Login> createState() => _LoginState();
}

class _LoginState extends State<Login> {


@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context,snapshot){
if(snapshot.connectionState==ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator(),);
}else if(snapshot.hasData){
return const Appbar();
}else if(snapshot.hasError){
return const Center(child: Text('Something went wrong'),);
}else{
return const Signin();
}
},
),
);
}
}

signup authentication
registration() async{
print("objec");
if(usernameController.text!=""&& emailController.text!=""&&
passwordController.text!=""){
print("obje");
try{
print('yes1');
UserCredential userCredential = await
FirebaseAuth.instance.createUserWithEmailAndPassword(email: email,
password: password);
await FirebaseAuth.instance.currentUser!.updateDisplayName(name);
await
FirebaseAuth.instance.currentUser!.verifyBeforeUpdateEmail(email);
await FirestoreServices.saveUser(name, email,
userCredential.user!.uid);

ScaffoldMessenger.of(context).showSnackBar( SnackBar(content:
Text('Successfully Registered',style: TextStyle(
fontSize: 20
),)));
// Get.snackbar('Successfully Registered', ' ',
// snackPosition: SnackPosition.BOTTOM,
// backgroundColor: Colors.transparent,
// colorText: Colors.blue,
// duration: const Duration(seconds: 2),
// animationDuration: const Duration(milliseconds: 800),
// // icon: const Icon(
// // Icons.warning_amber,
// // )
// );
print("obj");
// Navigator.push(context, MaterialPageRoute(builder:
(context)=>const Signin()));
Get.to(()=>Signin());
}on FirebaseAuthException catch(e){
print("ob");
if(e.code=='weak-password'){
ScaffoldMessenger.of(context).showSnackBar( SnackBar(content:
Text('Your password is too weak',style: TextStyle(
fontSize: 18
),)));
// Get.snackbar('Your password is too weak', ' ',
// snackPosition: SnackPosition.BOTTOM,
// backgroundColor: Colors.transparent,
// duration: const Duration(seconds: 2),
// animationDuration: const Duration(milliseconds: 800),
// colorText: Colors.blue,
// // icon: const Icon(
// // Icons.warning_amber,
// // )
// );
}else if(e.code=="email-already-in-use"){
print("o");
ScaffoldMessenger.of(context).showSnackBar( SnackBar(content:
Text('Account already exist',style: TextStyle(
fontSize: 20
),)));
// Get.snackbar('Account already exist ', ' ',
// snackPosition: SnackPosition.BOTTOM,
// backgroundColor: Colors.transparent,
// duration: const Duration(seconds: 2),
// animationDuration: const Duration(milliseconds: 800),
// colorText: Colors.red,
// // icon: const Icon(
// // Icons.warning_amber,
// // )
// );
}
}
}
}
signin authentication

userlogin() async {
try {
await FirebaseAuth.instance
.signInWithEmailAndPassword(email: email, password: password);
Get.to(() => const Appbar());
} on FirebaseAuthException catch (e) {
print('error:$e');
if (e.code == 'user-not-found') {
print("not found user ");
ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content:
Text('not found user',style: TextStyle(
fontSize: 20
),)));
} else if (e.code == 'wrong-password') {
print("wrongpassword");
ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content:
Text('wrong-password',style: TextStyle(
fontSize: 20
),)));
}
}
}

google signin provider

import 'package:beacon/app/home/appbar.dart';
import 'package:beacon/logpage/signin.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_sign_in/google_sign_in.dart';

class GoogleSignInProvider extends ChangeNotifier {


final googlesignin =GoogleSignIn();

GoogleSignInAccount? _user;

GoogleSignInAccount get user=> _user!;

Future googleLogin() async {


try{
final googleuser = await googlesignin.signIn();
if (googleuser == null) return;
_user = googleuser;
print("object");
final googleAuth = await googleuser.authentication;
print("objec");
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
print("obje");
await FirebaseAuth.instance.signInWithCredential(credential);
}catch(e){
print(e.toString());
print("obj");
}
notifyListeners();
print("ob");
// Get.to(()=>Appbar());
}
Future logout() async{
await googlesignin.disconnect();
FirebaseAuth.instance.signOut();
// Get.to(()=>Signin());
}

//
// class AuthMethods {
// final FirebaseAuth auth = FirebaseAuth.instance;
//
// getCurrentUser() async {
// return auth.currentUser;
// }
//
// signInWithGoogle(BuildContext context) async {
// final FirebaseAuth firebaseAuth = FirebaseAuth.instance;
// final GoogleSignIn googleSignIn = GoogleSignIn();
//
// final GoogleSignInAccount? googleSignInAccount =
// await googleSignIn.signIn();
//
// final GoogleSignInAuthentication? googleSignInAuthentication =
// await googleSignInAccount?.authentication;
//
// final AuthCredential credential = GoogleAuthProvider.credential(
// idToken: googleSignInAuthentication?.idToken,
// accessToken: googleSignInAuthentication?.accessToken);
//
// UserCredential result = await
firebaseAuth.signInWithCredential(credential);
//
// User? userDetails = result.user;
//
// if (result != null) {
// Map<String, dynamic> userInfoMap = {
// "email": userDetails!.email,
// "name": userDetails.displayName,
// "imgUrl": userDetails.photoURL,
// "id": userDetails.uid
// };
// await DatabaseMethods()
// .addUser(userDetails.uid, userInfoMap)
// .then((value) {
// Navigator.push(
// context, MaterialPageRoute(builder: (context) => const
Appbar()));
// });
// }
// }

// Future<User> signInWithApple({List<Scope> scopes = const []}) async {


// final result = await TheAppleSignIn.performRequests(
// [AppleIdRequest(requestedScopes: scopes)]);
// switch (result.status) {
// case AuthorizationStatus.authorized:
// final AppleIdCredential = result.credential!;
// final oAuthCredential = OAuthProvider('apple.com');
// final credential = oAuthCredential.credential(
// idToken:
String.fromCharCodes(AppleIdCredential.identityToken!));
// final UserCredential = await
auth.signInWithCredential(credential);
// final firebaseUser = UserCredential.user!;
// if (scopes.contains(Scope.fullName)) {
// final fullName = AppleIdCredential.fullName;
// if (fullName != null &&
// fullName.givenName != null &&
// fullName.familyName != null) {
// final displayName = '${fullName.givenName}$
{fullName.familyName}';
// await firebaseUser.updateDisplayName(displayName);
// }
// }
// return firebaseUser;
// case AuthorizationStatus.error:
// throw PlatformException(
// code: 'ERROR_AUTHORIZATION_DENIED',
// message: result.error.toString());
//
// case AuthorizationStatus.cancelled:
// throw PlatformException(
// code: 'ERROR_ABORTED_BY_USER', message: 'Sign in aborted by
user');
// default:
// throw UnimplementedError();
// }
// }

sharedpreference for save some data

import 'package:shared_preferences.dart';

class AuthService {

static const String KEY_IS_LOGGED_IN = "is_logged_in";

static const String KEY_USER_EMAIL = "user_email";


static const String KEY_USER_NAME = "user_name";

// Save user login state and data

Future<void> saveUserData(String email, String name) async {

final prefs = await SharedPreferences.getInstance();

await prefs.setBool(KEY_IS_LOGGED_IN, true);

await prefs.setString(KEY_USER_EMAIL, email);

await prefs.setString(KEY_USER_NAME, name);

// Get user data

Future<Map<String, String?>> getUserData() async {

final prefs = await SharedPreferences.getInstance();

return {

'email': prefs.getString(KEY_USER_EMAIL),

'name': prefs.getString(KEY_USER_NAME),

};

// Clear user data on logout

Future<void> logout() async {

final prefs = await SharedPreferences.getInstance();

await prefs.clear();

// Check if user is logged in

Future<bool> isLoggedIn() async {

final prefs = await SharedPreferences.getInstance();

return prefs.getBool(KEY_IS_LOGGED_IN) ?? false;

You might also like