This commit is contained in:
2026-05-21 10:51:27 +01:00
parent 33278214fd
commit 2816609f7a
5 changed files with 46 additions and 3 deletions

View File

@@ -19,7 +19,8 @@ import {
deleteDoc, writeBatch, setDoc, getDoc, query, where, getDocs, collectionGroup
} from 'firebase/firestore';
import { auth, db, appId } from './lib/firebase';
import { auth, db, messaging, appId } from './lib/firebase';
import { getToken } from 'firebase/messaging';
import { Card } from './components/ui/Card';
import { Badge } from './components/ui/Badge';
import { Input } from './components/ui/Input';
@@ -183,6 +184,21 @@ export default function App() {
alert('Permissão recusada. Ative as notificações no browser para usar esta funcionalidade.');
return;
}
// Tentar obter o token FCM se a VAPID Key estiver configurada
if (messaging) {
try {
const vapidKey = import.meta.env.VITE_FIREBASE_VAPID_KEY;
if (vapidKey) {
const currentToken = await getToken(messaging, { vapidKey });
if (currentToken) {
saveUserSetting('fcmToken', currentToken);
}
}
} catch (err) {
console.error('Erro ao obter token FCM:', err);
}
}
} else {
alert('O seu browser não suporta notificações.');
return;

View File

@@ -1,6 +1,7 @@
import { initializeApp } from 'firebase/app';
import { getAuth } from 'firebase/auth';
import { getFirestore } from 'firebase/firestore';
import { getMessaging } from 'firebase/messaging';
const firebaseConfig = {
apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
@@ -14,7 +15,8 @@ const firebaseConfig = {
const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
const db = getFirestore(app);
const messaging = typeof window !== 'undefined' ? getMessaging(app) : null;
const appId = import.meta.env.VITE_APP_ID || 'my-closet-app';
export { app, auth, db, appId };
export { app, auth, db, messaging, appId };

View File

@@ -5,7 +5,7 @@ import './index.css'
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js').catch(err => {
navigator.serviceWorker.register('/firebase-messaging-sw.js').catch(err => {
console.error('Service worker registration failed', err);
});
});