В этом руководстве вы узнаете, как интегрировать Supabase во Flutter, серверную службу, которая предоставляет данные в реальном времени, аутентификацию и хранилище для ваших приложений Flutter.
Прежде чем начать, убедитесь, что у вас есть следующее:
// Example of API URL and anon key (not real credentials)
const String supabaseUrl = 'https://yourproject.supabase.co';
const String supabaseAnonKey = 'your-anon-key';
dependencies:
flutter:
sdk: flutter
supabase_flutter: ^0.2.8
import 'package:supabase_flutter/supabase_flutter.dart';
void main() {
Supabase.initialize(
url: supabaseUrl,
anonKey: supabaseAnonKey,
);
runApp(MyApp());
}
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
}
}
База данных 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
}
}
Функции 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
}
}