Push Notification (FCM)
Endpoint untuk register dan kelola Firebase Cloud Messaging token. Semua endpoint di bagian ini memerlukan JWT authentication.
Info: Alur: Login → Firebase SDK generate token →
POST /notifications/fcmregister → Backend otomatis kirim notifikasi ke device. Saat logout →DELETE /notifications/fcmunregister.
POST /notifications/fcm
Register FCM token untuk menerima push notification.
Request Body
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
token | string | Ya | FCM token dari Firebase SDK |
deviceId | string | Tidak | Identifier unik device |
deviceName | string | Tidak | Nama device (untuk display) |
platform | string | Ya | "android" atau "ios" |
appVersion | string | Tidak | Versi aplikasi |
Contoh Request
curl -X POST https://fumai.app/api/mobile/v1/notifications/fcm \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"token": "fcm_token_dari_firebase_sdk",
"deviceId": "unique_device_identifier",
"deviceName": "Samsung Galaxy S24",
"platform": "android",
"appVersion": "1.0.0"
}'const res = await fetch('https://fumai.app/api/mobile/v1/notifications/fcm', {
method: 'POST',
headers: {
Authorization: `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
token: fcmToken,
deviceId: deviceId,
deviceName: 'Samsung Galaxy S24',
platform: 'android',
appVersion: '1.0.0',
}),
})
const data = await res.json()Response 200
{
"success": true,
"tokenId": "clx..."
}Behavior
- Jika
tokensudah ada → update data (upsert) - Jika
deviceIdsudah ada dengan token berbeda → deactivate token lama (token refresh scenario)
GET /notifications/fcm
Mendapatkan daftar device yang terdaftar untuk push notification.
Contoh Request
curl -X GET https://fumai.app/api/mobile/v1/notifications/fcm \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const res = await fetch('https://fumai.app/api/mobile/v1/notifications/fcm', {
headers: { Authorization: `Bearer ${accessToken}` },
})
const data = await res.json()Response 200
{
"success": true,
"devices": [
{
"id": "clx...",
"deviceId": "device-uuid",
"deviceName": "Samsung Galaxy S24",
"platform": "android",
"appVersion": "1.0.0",
"lastUsed": "2026-02-26T10:00:00Z",
"createdAt": "2026-02-25T08:00:00Z"
}
]
}DELETE /notifications/fcm
Unregister FCM token (biasanya dipanggil saat logout).
Query Parameters
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
token | string | Ya | FCM token yang ingin dihapus |
Contoh Request
curl -X DELETE "https://fumai.app/api/mobile/v1/notifications/fcm?token=FCM_TOKEN" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const res = await fetch(
`https://fumai.app/api/mobile/v1/notifications/fcm?token=${fcmToken}`,
{
method: 'DELETE',
headers: { Authorization: `Bearer ${accessToken}` },
}
)
const data = await res.json()Response 200
{
"success": true,
"deleted": 1
}Tipe Push Notification
Backend otomatis mengirim push notification untuk event berikut (tidak perlu subscribe manual):
| Event | Contoh |
|---|---|
| Booking | Booking confirmed, reminder |
| Chat | Pesan baru |
| FitMatch | New match, new like |
| Sport Buddy | Request baru, accepted |
| Community | Post reply, mention |
| Gamification | Achievement unlocked, level up |
| Fasting | Timer selesai |
| Admin | Broadcast notification |
Last updated on