fix: hapus otomatis token FCM yang UNREGISTERED saat kirim gagal 404

This commit is contained in:
Novy San87
2026-08-06 10:33:18 +07:00
parent 744b1241b8
commit cebb32c248
+11
View File
@@ -83,6 +83,17 @@ class FcmService
if (! $response->successful()) { if (! $response->successful()) {
Log::error('FCM send failed: '.$response->status().' '.$response->body()); Log::error('FCM send failed: '.$response->status().' '.$response->body());
// Token mati/tercabut (mis. SW browser diganti) → hapus dari database
// supaya tidak dipakai lagi; aplikasi akan daftarkan token baru saat login berikutnya.
if ($response->status() === 404) {
$body = $response->json();
$code = $body['error']['details'][0]['errorCode'] ?? null;
if ($code === 'UNREGISTERED') {
\App\Models\ParentDevice::where('fcm_token', $token)->delete();
Log::error('FCM device unregistered — token dihapus dari database');
}
}
return false; return false;
} }