diff --git a/lib/useNotification.ts b/lib/useNotification.ts index 46d562f..b1dd761 100644 --- a/lib/useNotification.ts +++ b/lib/useNotification.ts @@ -1,10 +1,14 @@ import { getApp, getApps, initializeApp } from '@react-native-firebase/app'; -import { getMessaging, registerDeviceForRemoteMessages, setAutoInitEnabled } from '@react-native-firebase/messaging'; +import { + getMessaging, + getToken as getMessagingToken, + setAutoInitEnabled, +} from '@react-native-firebase/messaging'; import * as Notifications from 'expo-notifications'; import { useEffect } from 'react'; import { PermissionsAndroid, Platform } from 'react-native'; -// Your Firebase project configuration +// Firebase config const RNfirebaseConfig = { apiKey: "AIzaSyB2hbsW91J3oRQx4_jgrCCNY0tNt5-21e8", authDomain: "googleapis.com", @@ -15,14 +19,15 @@ const RNfirebaseConfig = { databaseURL: "https://mobile-darmasaba-default-rtdb.asia-southeast1.firebasedatabase.app/" }; - const initializeFirebase = async () => { try { const app = getApps().length ? getApp() : initializeApp(RNfirebaseConfig); const mess = getMessaging(app); - await registerDeviceForRemoteMessages(mess); - setAutoInitEnabled(mess, true); - return mess + // await registerDeviceForRemoteMessages(mess); + // `registerDeviceForRemoteMessages` tidak perlu lagi + await setAutoInitEnabled(mess, true); + + return mess; } catch (error) { console.error('Failed to initialize Firebase:', error); } @@ -31,17 +36,16 @@ const initializeFirebase = async () => { export const requestPermission = async () => { try { if (Platform.OS === 'android') { - const cek = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS) + const cek = await PermissionsAndroid.check( + PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS + ); if (!cek) { const granted = await PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ); - if (granted === PermissionsAndroid.RESULTS.GRANTED) { - return true - } - return false + return granted === PermissionsAndroid.RESULTS.GRANTED; } - return true + return true; } else if (Platform.OS === 'ios') { const { status } = await Notifications.requestPermissionsAsync(); return status === 'granted'; @@ -54,10 +58,13 @@ export const requestPermission = async () => { export const getToken = async () => { try { const mess = await initializeFirebase(); - const token = await mess?.getToken(); + if (!mess) return null; + + // pakai modular API + const token = await getMessagingToken(mess); return token; } catch (error) { - console.error("Error getting token:", error); + console.error('Error getting token:', error); } }; @@ -73,4 +80,4 @@ export const useNotification = () => { initializeAndSetup(); }, []); -}; \ No newline at end of file +};