FCM push Notifications
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user