FirebaseInstanceId๋ฅผ ํตํด FCM ํ ํฐ์ ๋ฐ๊ธ๋ฐ๋ ์ฝ๋๋ฅผ FirebaseMessaging์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ฐ๊พธ์๋๋ฐ ์ด์๊ฐ ๋ฐ์ํ๋ค.
์ด์ ๋ถ์
FirebaseMessaging ์ ํตํด FCM ํ ํฐ ํธ์ถ ์ ๊ฐํ์ ์ผ๋ก RuntimeExecutionException ๋ฐ์ํ๋ค.
๊ฐํ์ ์ผ๋ก ๋ฐ์ํ๋ ์ด์ ๋, ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๋ฌธ์ ๊ฐ ์์ ๊ฒฝ์ฐ์ ํด๋น ์ด์๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ํ
์คํธ๋ฅผ ํตํด ๋ฐ๊ฒฌํ๋ค.
FIS_AUTH_ERROR ๋ก ์๋ฌ ๋ฉ์์ง๊ฐ ๋
ธ์ถ๋๋ค.
FIS ๋ Firebase Installations Service๋ก, Firebase ์๋น์ค๋ค(์ : Firebase ํด๋ผ์ฐ๋ ๋ฉ์์ง, Firebase์ฉ Google ์ ๋๋ฆฌํฑ์ค ๋ฑ)์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉ๋๋ Firebase ์ค์น ID๋ฅผ ์ ๊ณตํ๋ค.
FIS๊ฐ ๋์
๋๊ธฐ ์ ์ FCM ํด๋ผ์ด์ธํธ๊ฐ ์ธ์คํดํธ ID์์ ๋ฑ๋ก ํ ํฐ์ ๊ฒ์ํ๋ ์ฌํญ์ด ๋ณ๊ฒฝ๋์ด, FCM SDK๊ฐ FirebaseMessaging์ผ๋ก ์ด ๋ฑ๋ก ํ ํฐ์ ๊ฒ์ํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
์ฐธ๊ณ : https://firebase.google.com/docs/projects/manage-installations#android
FIS_AUTH_ERROR ์๋ฌ ๋ฉ์์ง๋ฅผ ํตํด ํ ํฐ ๋ฐ๊ธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ์ถ์ธกํ ์ ์๋ค.
FIS_AUTH_ERROR ๋ฐ์ ์์ ํด๊ฒฐ ๋ฐฉ์๋ค ํ์
: Thanks for StackOverflow
1) Firebase์ ๋ฑ๋ก๋ ํ๋ก์ ํธ์ google-services.json ํ์ผ์ ์๋ก ๊ต์ฒด
> ํ์ฌ ์ฑ์ json ํ์ผ๊ณผ Firebase ํ๋ก์ ํธ์ json ํ์ผ์ ๋น๊ตํ ๊ฒฐ๊ณผ ๋ค๋ฅผ ๊ฒ์ด ์๋ค. ํด๋น ๋ฐฉ๋ฒ์ ํฌ๋์๊ฐ ํญ์ ๋ฐ์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ณด์
2) Firebase์ SHA1 ์ธ์ฆ ์ง๋ฌธ ๋ฑ๋ก
> ์ด๋ฏธ ์ ์์ ์ผ๋ก ๋ฑ๋ก๋์ด ์์
3) Firebase Installations ๋ฅผ ํตํด ํ ํฐ ๋ฐ๊ธ
> Firebase Installations๋ฅผ ํตํด ๋ฐ๋ Id์ FirebaseMessaging์ ํตํด ๋ฐ๋ ํ ํฐ ๊ฐ์ ์ฐจ์ด๊ฐ ์์์ ํ์ธํจ. FirebaseMessaging์ผ๋ก ๋ฐ๋ ํ ํฐ ๊ฐ์ด ๋ ๊ธธ๋ค. Firebase Installations๋ฅผ ํตํด ๋ฐ๋ Id๋ฅผ FCM ํ ํฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํ ์ง ๋ณด์ฅํ ์ ์๋ค.
์๋ฌ ์ฝ๋ ๋ถ์
๊ธฐ์กด FirebaseInstanceId๋ฅผ ํตํด ํ ํฐ์ ๋ฐ๊ธ๋ฐ๋ ๊ฒ๊ณผ FirebaseMessaging์ผ๋ก ํ ํฐ ๋ฐ๊ธํ๋๋ก ์์ ํ ์ฌํญ์ ์ฐจ์ด์ ๋ฐ ์๋ฌ ์ฝ๋ ํ์
- ๊ธฐ์กด FirebaseInstanceId :
- OnSuccessListener๋ฅผ addํด ์ธ์คํด์ค Id ๊ฐ์ด Result ๊ฐ์ผ๋ก ์๋ Task๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํธ์ถ์ ์๋ฃํ์ ๊ฒฝ์ฐ์๋ง task์ ํ ํฐ ๊ฐ์ ํธ์ถํด์ ์ ์ฅํจ.
- ์ด์๊ฐ ๋ฐ์ํ FirebaseMessaging :
- OnCompleteListener๋ฅผ addํด ํ ํฐ ๊ฐ์ด Result ๊ฐ์ผ๋ก ์๋ Task๋ฅผ ํธ์ถ ์๋ฃํ์ ๊ฒฝ์ฐ์ task์ ํ ํฐ์ ํธ์ถํด์ ์ ์ฅํจ.
- ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๋ ์ด task์ ํ ํฐ์ ํธ์ถํ ๋ ํฌ๋์๊ฐ ๋ฐ์ํจ.
- FirebaseMessaging์ด getToken()์ ํธ์ถํ ๋ ๋ด๋ถ์์ try catch๋ฌธ์ ํตํด ๋ฐ์ํ Exception์ ๋๋ ํ๋ Task์ ์์ ํด๋์ค์ ํ๋ ๊ฐ์ผ๋ก ๋ฃ๋ ๊ฒ์ ํ์ธํจ.
Task์ ์์ ํด๋์ค๊ฐ ๋๋
ํ๋๊ณ ๋ด๋ถ ๊ตฌํ์ ์ ๊ทผํ ์ ์๋๋ก ๋ง์๋์์ ์ ํํ ํ์
ํ๊ธฐ๋ ์ด๋ ต์ง๋ง,
1) ์ถ์ ํด๋์ค Task๊ฐ isSuccessful()๋ฅผ ๋ฐ๋์ ์ค๋ฒ๋ผ์ด๋ ํ๋๋ก ํด๋์ ๊ฒ๊ณผ,
2) Firebase ๊ณต์ ๋ฌธ์์์ isSuccessful()๊ฐ true์ผ ๊ฒฝ์ฐ์๋ง Task์ result๋ก ํ ํฐ์ ํธ์ถํ๋ ๊ฒ์ ๋ณผ ๋,
task๊ฐ ์ฑ๊ณต์ ์ผ๋ก ํธ์ถ๋์ง ๋ชปํ์ ๊ฒฝ์ฐ ํ ํฐ์ ํธ์ถํ๋ฉด Task ์์ ์ ์ฅ๋ exception์ throw ํ๋ ๊ฒ์ผ๋ก ์ถ์ธก๋๋ค.
์์
task.isSuccessful()์ด true์ผ ๊ฒฝ์ฐ์๋ง ํ ํฐ ๊ฐ์ ํธ์ถํ๋๋ก ์ฝ๋ ์์
https://firebase.google.com/docs/projects/manage-installations?hl=fi-fi