deleteAccount method
Implementation
Future<bool> deleteAccount() async {
if (_serverApiUrl == null) {
warn('Cannot delete account: server API URL not configured');
return false;
}
final _FirebaseUser? user = _firebase.auth().currentUser;
if (user == null) {
warn('Cannot delete account: no user signed in');
return false;
}
try {
verbose('Deleting account from server...');
final JSString jsToken = await user.getIdToken(true).toDart;
final String idToken = jsToken.toDart;
final http.Response response = await http.delete(
Uri.parse('$_serverApiUrl/api/auth/delete'),
headers: <String, String>{
'Authorization': 'Bearer $idToken',
'Content-Type': 'application/json',
},
);
if (response.statusCode == 200) {
info('Account deleted from server');
await signOut();
return true;
} else {
warn('Failed to delete account: ${response.statusCode} - ${response.body}');
return false;
}
} catch (e) {
error('Failed to delete account: $e');
return false;
}
}