AuthService Package

A simple and efficient authentication service for Flutter applications using Firebase Authentication and Shared Preferences. This package provides functionalities for user registration, login, email update, and logout, while managing the user token locally.

Features

  • Register with Email and Password
  • Login with Email and Password
  • Logout and clear user token
  • Update user email
  • Check if user is logged in
  • Retrieve current user

Installation

Add the following to your pubspec.yaml file:

dependencies:
  firebase_auth: ^4.1.0
  shared_preferences: ^2.0.15

Then, run flutter pub get to install the dependencies.

Usage

Import the package in your Dart file:

import 'auth_service.dart';

Register a New User

AuthService authService = AuthService();

Future<void> registerUser() async {
  User? user = await authService.registerWithEmailAndPassword(
    'user@example.com',
    'password123',
  );
  if (user != null) {
    print('Registration successful!');
  } else {
    print('Registration failed.');
  }
}

Login a User

Future<void> loginUser() async {
  User? user = await authService.loginWithEmailAndPassword(
    'user@example.com',
    'password123',
  );
  if (user != null) {
    print('Login successful!');
  } else {
    print('Login failed.');
  }
}

Logout a User

Future<void> logoutUser() async {
  await authService.logout();
  print('User logged out.');
}

Update User Email

Future<void> updateUserEmail() async {
  bool success = await authService.updateEmail('newemail@example.com');
  if (success) {
    print('Email updated successfully!');
  } else {
    print('Email update failed.');
  }
}

Check if User is Logged In

Future<void> checkUserLoggedIn() async {
  bool loggedIn = await authService.isLoggedIn();
  if (loggedIn) {
    print('User is logged in.');
  } else {
    print('User is not logged in.');
  }
}

Get Current User

User? user = authService.getCurrentUser();
if (user != null) {
  print('Current user: ${user.email}');
} else {
  print('No user is currently logged in.');
}

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Libraries

firebase_auth_services
Support for doing something awesome.