๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[Android][Firebase]FIS_AUTH_ERROR

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 

 

Firebase ์„ค์น˜ ๊ด€๋ฆฌ  |  Firebase Documentation

์˜๊ฒฌ ๋ณด๋‚ด๊ธฐ Firebase ์„ค์น˜ ๊ด€๋ฆฌ Firebase ์„ค์น˜ ์„œ๋น„์Šค(FIS)๋Š” Firebase ์•ฑ์˜ ์„ค์น˜๋œ ๊ฐ ์ธ์Šคํ„ด์Šค์— Firebase ์„ค์น˜ ID(FID)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Firebase ์„ค์น˜ ID๋Š” ๋‹ค์Œ Firebase ์„œ๋น„์Šค์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Fireb

firebase.google.com