From 6f241e19fb95e8abef25ed91eeb975ae47777cf6 Mon Sep 17 00:00:00 2001 From: ghozahimma65 Date: Tue, 19 May 2026 14:37:54 +0700 Subject: [PATCH] upload TA --- app/Http/Controllers/Controller.php | 19 ++++++++++++++++--- storage/firebase-auth.zip | Bin 0 -> 1834 bytes 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 storage/firebase-auth.zip diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 09f770a..b084aeb 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -40,12 +40,25 @@ public function sendFCMNotification($title, $body, $tokens) $responses[] = $result; \Log::info("FCM Response for token {$fcmToken}: Sukses via Kreait. Result: " . json_encode($result)); } catch (\Kreait\Firebase\Exception\MessagingException $e) { - \Log::error("Kreait FCM Error for token {$fcmToken}: " . $e->getMessage()); + $errorMessage = $e->getMessage(); + $errors = $e->errors(); + \Log::error("Kreait FCM Error for token {$fcmToken}: " . $errorMessage); + + // Cek dari errors() bukan getMessage() + $errorCode = $errors['error']['details'][0]['errorCode'] ?? ''; + + if ($errorCode === 'UNREGISTERED' || str_contains($errorMessage, 'UNREGISTERED') || $errorCode === 'INVALID_ARGUMENT' || str_contains($errorMessage, 'invalid-argument')) { + \App\Models\User::where('fcm_token', $fcmToken)->update(['fcm_token' => null]); + \Log::warning("FCM Token dihapus karena Unregistered/Invalid: {$fcmToken}"); + continue; + } + // ERROR HANDLING TEGAS SEPERTI SEBELUMNYA dd([ 'STATUS' => 'ERROR_DITOLAK_GOOGLE', - 'FCM_ERROR' => $e->getMessage(), - 'FCM_ERROR_DETAILS' => $e->errors() + 'FCM_ERROR' => $errorMessage, + 'FCM_ERROR_DETAILS' => $errors, + 'ERROR_CODE_DETECTED' => $errorCode, ]); } } diff --git a/storage/firebase-auth.zip b/storage/firebase-auth.zip new file mode 100644 index 0000000000000000000000000000000000000000..f6c23279ec8e68da9f56cd46d2937ccc8d34c7f4 GIT binary patch literal 1834 zcmV+_2i5pcO9KQH0000806<-*T<^W}gMbDA09OeB01^NI0A^`&Wny7-Wi4TKbZ9PW zb8l{yR>_Xz$Q8WzR}>oXN$w^o?gJPwcTwUZimLOmP|X zV{;GsqWL!{pMx=ZFO%&H7~>R9LS>hNjc0Le$dB%^uqT|ln;fH7Eb48Vl78L>5tmm1Z&|O*k6r8D zqDrH{qOTBWZ6A0AX*TYhn1;u8;C>Wq+)}C_Dro)SxR~XxB;PO`o}61}_KuRokps2b zSzKMbtvM?`AoyOqIfuiw?&F7PI%C#ShaR5cT**%pwUIMPPa0Y1+j=V(dMY0a1MhK* zGuAOr&E5ylEa-5Bu1uz~3?p#av*)fZWr}b(4;|kcX|}UxiL4=j18{VgGxNNtzA$o8qZqX%I7dyk^yj@ z4+2d&tcX}Pf`hhD9IAQB@`BUY@EYWJn36P8|iwJMA#oXdh$gfWRgmnh&bTyG`0b z)V+acFh#jv_R59BLfwt-2WlGnrs>m%3YUB;mS;6zuDg;@ZU&^AIL*@u_Dk) zJnzl(<~i&&)VtojeY$S0cbGsEPr(jyb%z>G=TY(A;w}A%q4@Cfz|DJ|*CWA@Pz^(` z%K30e_cdp>Gv!1rLPic6NSS)I1$&>9DPgs`M>}?#DS1nc!t;;P*PDW^8Y(dxPO98~ zMn?3)+BmfY*AhwfxD%^+*~oQ`xz2_jEH%$@aYW`$J_2S~o>g!>OpytTzg!;_X=LGA zb=N7UoUEX>M2+a;!mfNJEpq8+sEq(htB}Iz2#QmczF>Kc)uccH$4*+}MC{K#psQm7og14o*xO~gqjOv_MLRCP<|-A#74 zc?)2{x`|GqG9jh9=1$|0ZB)DozurvSS=k-S`=ASy6kFNg=*gpDY*2U!)iZpO;xlbI z8v2~Sl8M|e7#XohOhOKPI1?40G*GiI9O}sWptbgg_!LEvY0nXgDJd^&?wAZtJ0uVV z30QBkPPrVPt{EAIgGj;qAd3scd_akn+dcquj!pXg5=KeJ>!3srh;y}-X4}U^I9sWv zhdhw?Rp46kt(q40h`Bu*@{CkyrGmvi;18OP-?C!s#?uZ}8Z%#?V`O(dt=3$hm9h3R zR#=O}V&IkON~mLOTzI~+bwAxi>1wqz>}xm27F=Ct)xoKZ3Z-k9?n=%1k-2ZStQD4lU&4&;62lRIvKCcXO9w+_#io^7Kl=S0Mr~19lvMm2C@?~H~ zpci5IrOrR2(>Gx=zGUiT4B}u6pcfnZKaKwj2LH*{PavO@en{Tq=6R^#<>prh-@pCy z+rI!%O928O02BZK00;m;U8h{{z4L>B1^@t82><{R03-ka0000003ZMW000000A^`& zWny7-Wi4TKbZ9PWb8l`603ZMW0000102lx-rgGTZ-P{4)taV`K;M@T%yk`Jr-P{3C YO9ci1000010097G000261^@s60HmZ>^#A|> literal 0 HcmV?d00001