Пытаюсь настроить push notifications через firebase но никак не получается.
На фронте:
import { initializeApp } from "firebase/app";
import { getMessaging, getToken, onMessage } from "firebase/messaging";
const firebaseConfig = {
apiKey: "xxxxxx,
authDomain: "xxxxx",
databaseURL: 'xxxxx',
projectId: "xxxx",
storageBucket: "xxxxxx",
messagingSenderId: "xxxxx",
appId: "xxxx",
measurementId: "xxxxx"
};
const app = initializeApp(firebaseConfig);
const messaging = getMessaging();
getToken(messaging).then((currentToken) => {
if (currentToken) {
console.log(currentToken)
} else {
console.log('No registration token available. Request permission to generate one.');
}
}).catch((err) => {
console.log('An error occurred while retrieving token. ', err);
});
onMessage(messaging, (payload) => {
console.log('Message received. ', payload);
});
Захожу на страницу, беру токен клиента - и с бэка отправляю ему push, в админке firebase видно что счетчик сообщений увеличивается, но они не в статусе received. onMessage так же молчит.
И вот тут я не совсем понимаю по какому каналу он их вообще должен был получить?
firebase не поллит никакое апи, не подключается к сокету - откуда им взяться?
Для отправки использую пакет
https://github.com/laravel-notification-channels/fcm - тут вроде все хорошо - запрос уходит, в ответ null
User::first()->notify(new PushNotification)
В качестве токена захардкодил ключ для тестов:
public function routeNotificationForFcm() {
return 'xxxxxx'; // Ключ взял из выхлопа console.log на фронте
}
Речь именно про браузер на десктопе. На android/ios это видимо вообще иначе работает внутренними средствами ios - туда еще не добрался - пока бы просто веб пуш получить для теста.