바쁘신 분들을 위한 해결책 요약
- firebase-message-sw.js 경로 확인 -> resources/static 경로에 있어야합니다!!!!
- https적용 여부, 나는 http://localhost에서도 1번 해결책만으로 위 오류는 없어졌지만, https에서만 된다고는 하니, 안된다면 시도해보길!
이슈
음~ 아까 생긴 오류 해결한지 30분도 안되서 오류 하나 추가요... 너무 좋다~~🙃🙃
FCM테스트 하려고 하는데
Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~
검색해보니 http에서 이런에러가 난다길래, https적용된 도메인에 올려서 다시 테스트해봤는데,
계속 똑같은 오류 메세지가 출력되었다.
웹에서 FCM 테스트 시 firebase-messaging-sw.js라는 파일을 만들게 되는데, 이 파일의 경로 문제인 것 같다.
나는 이 파일을 resources아래에 추가했다..!
이럼 안되는건가..?ㅠㅠ
해결하는 의식의 흐름(삽질 주의..)
루트 경로에 설정하래서, 프로젝트 루트 경로 com.demo.example 바로 아래에 넣어야하나 잠시 고민했는데, 역시 그건아니고
html파일과 같은 경로에 넣으면 된다고한다!
나는 html파일을 resources/templates 아래에 넣어뒀으니 거기에 js파일도 넣으면 될 것 같다.(응 안됨)
"Messaging: We are unable to register the default service worker.
Failed to register a ServiceWorker for scope ('https://dev.zzatmari.shop/firebase-cloud-messaging-push-scope') with script ('https://dev.zzatmari.shop/firebase-messaging-sw.js'):
A bad HTTP response code (404) was received when fetching the script. (messaging/failed-serviceworker-registration)."
음..아까랑 에러메세지가 조금 달라지긴 했는데, 여전히 비슷한 메세지가 뜬다.
404관련 에러가 뜨는데, firebase-message-sw.js를 못찾는 것 같다.
script태그로 상대경로를 이용하여 firebase-message-sw.js를 추가해주었다!
하지만 이건 상관이 없었다...역시나 같은 메세지 반복...
https://도메인/firebase-message-sw.js 이 경로에 접근할 수 있으면 된다고 하는데
도메인 루트경로에 javascript파일을 넣어서 접근하는법(?)을 잘모르겠어서 헤맸다... 도대체 어디 넣으라는건지...?
해결
resources/templates 경로에는 html파일을 두면 되고, resources/static에는 css, js등의 파일을 넣으면 된다고한다.
그래서 혹시나 해서, firebase-message-sw.js파일을 resources/static에 넣었더니 된다...?
이건 내 spring boot web지식이 부족했던 것으로....ㅎㅎ