Supabase и Flutter интеграция

Flutter стал популярным фреймворком для создания кроссплатформенных мобильных приложений. Для улучшения этих приложений с помощью внутренних функций, таких как аутентификация, операции с базами данных и бессерверные функции, Supabase предоставляет надежное решение. Это руководство проведет вас через процесс интеграции Supabase в приложение Flutter.

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Базовые знания Flutter и Dart
  • Настройка среды Flutter
  • Учетная запись Supabase (создайте ее на Supabase.io )

Шаг 1: Настройка проекта Supabase

  • Создайте новый проект в Supabase.
  • Запишите символы API URLи anon key, которые будут использоваться в приложении Flutter.
// Example of API URL and anon key (not real credentials)
const String supabaseUrl = 'https://yourproject.supabase.co';
const String supabaseAnonKey = 'your-anon-key';

Шаг 2: Интеграция Supabase во Flutter

  1. Добавьте Supabase к вашему pubspec.yaml:
dependencies:flutter:sdk: fluttersupabase_flutter: ^0.2.8
  1. Инициализируйте Supabase в вашем основном файле Dart:
import 'package:supabase_flutter/supabase_flutter.dart';

void main() {
  Supabase.initialize(
    url: supabaseUrl,
    anonKey: supabaseAnonKey,
  );
  runApp(MyApp());
}

Шаг 3: Реализация аутентификации

Supabase предоставляет простые в реализации функции аутентификации.

Зарегистрируйте нового пользователя:

Future<void> signUpUser(String email, String password) async {
  final response = await Supabase.instance.client.auth.signUp(email, password);
  if (response.error == null) {
    // Handle success
  } else {
    // Handle error
  }
}

Войти как существующий пользователь:

Future<void> signInUser(String email, String password) async {
  final response = await Supabase.instance.client.auth.signIn(email: email, password: password);
  if (response.error == null) {
    // Handle success
  } else {
    // Handle error
  }
}

Шаг 4: Работа с базой данных

База данных Supabase в режиме реального времени позволяет с легкостью выполнять операции CRUD.

Создать запись

Future<void> addData() async {
  final response = await Supabase.instance.client
      .from('your_table')
      .insert({'key': 'value'})
      .execute();
  if (response.error == null) {
    // Handle success
  } else {
    // Handle error
  }
}

Извлечь данные

Future<void> fetchData() async {
  final response = await Supabase.instance.client
      .from('your_table')
      .select()
      .execute();
  if (response.error == null) {
    // Handle data
  } else {
    // Handle error
  }
}

Шаг 5: Использование функций Supabase

Функции Supabase — это бессерверные функции, которые могут запускаться с помощью HTTP-запросов.

Future<void> callFunction() async {
  final response = await Supabase.instance.client
      .rpc('function_name', params: {'param1': 'value'})
      .execute();
  if (response.error == null) {
    // Handle success
  } else {
    // Handle error
  }
}

Заключение

Интеграция Supabase с Flutter открывает множество возможностей для разработки многофункциональных приложений. Следуя этому руководству, вы теперь должны иметь базовое приложение Flutter, интегрированное с Supabase для аутентификации, операций с базами данных и бессерверных функций.