import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; class AuthProvider with ChangeNotifier { final FirebaseAuth _firebaseAuth; AuthProvider(this._firebaseAuth); Stream get authStateChanges => _firebaseAuth.authStateChanges(); Future signIn({ required String email, required String password, required BuildContext context, }) async { try { await _firebaseAuth.signInWithEmailAndPassword( email: email, password: password, ); return true; } on FirebaseAuthException catch (e) { _showErrorDialog(context, e.message!); return false; } } Future register({ required String email, required String password, required String displayName, // Tambahkan parameter displayName required BuildContext context, }) async { try { UserCredential userCredential = await _firebaseAuth.createUserWithEmailAndPassword( email: email, password: password, ); if (userCredential.user != null) { await userCredential.user!.updateDisplayName(displayName); await userCredential.user!.reload(); } return true; // Registrasi berhasil } on FirebaseAuthException catch (e) { _showErrorDialog(context, e.message!); return false; // Registrasi gagal } } Future signOut() async { await _firebaseAuth.signOut(); } void _showErrorDialog(BuildContext context, String message) { showDialog( context: context, builder: (context) => AlertDialog( title: const Text('Error'), content: Text(message), actions: [ TextButton( onPressed: () { Navigator.of(context).pop(); }, child: const Text('OK'), ), ], ), ); } }