Supabase

Supabase is a cloud-based platform for building scalable and secure backend applications.

First we have to start the supabase

Future<void> main() async {
  await Supabase.initialize(
    url: 'https://xyzcompany.supabase.co',
    anonKey: 'public-anon-key',
  );

  runApp(MyApp());
}

// Get a reference your Supabase client
final supabase = Supabase.instance.client;

SignUp a user

  // create email account
  Future<void> createAccountEmail(String email, String password,
      {Function(AuthException)? onError}) async {
    try {
      final response = await _supabaseClient.auth.signUp(
        email: email,
        password: password,
      );
      final session = response.session;
      final user = response.user;
    } on AuthException catch (error) {
      //error
      onError?.call(error);
    }

LogIn a user

  // login account with email
  Future<void> logInAccountEmail(String email, String password,
      {Function(AuthException)? onError, Function()? onDone}) async {
    try {
      final AuthResponse res = await supabase.auth.signInWithPassword(
        email: email,
        password: password,
      );
      final Session? session = res.session;
      final User? user = res.user;
      onDone?.call();
    } on AuthException catch (error) {
      // if there is an error with the log in, the function specified by the user can be executed
      onError?.call(error);
    }
  }

Verify if the account is created

void main() async {

  if (supabase.auth.currentSession == null) {
  // account not logged
    runApp(MyApp());
  } else {
  // acount logged 
    runApp(MyHomePage());
  }
}

LogOut

await supabase.auth.signOut();

https://supabase.com/docs/reference/dart/

Last updated