FCM push Notifications

This commit is contained in:
2026-02-25 23:37:08 +08:00
parent 1807dca57d
commit 6ccf820438
9 changed files with 188 additions and 47 deletions
+20
View File
@@ -2,6 +2,9 @@ import 'dart:async';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'notifications_provider.dart';
import '../utils/device_id.dart';
import 'supabase_provider.dart';
@@ -64,6 +67,23 @@ class AuthController {
}
Future<void> signOut() {
// Attempt to unregister this device's FCM token before signing out.
return _doSignOut();
}
Future<void> _doSignOut() async {
try {
final userId = _client.auth.currentUser?.id;
if (userId != null) {
try {
final token = await FirebaseMessaging.instance.getToken();
if (token != null) {
final ctrl = NotificationsController(_client);
await ctrl.unregisterFcmToken(token);
}
} catch (_) {}
}
} catch (_) {}
return _client.auth.signOut();
}
}