๐จWARN : Possible Unhandled Promise Rejection
Error: [storage/unauthorized] User is not authorized to perform the desired action.
๐ฅ์์นจ๋ถํฐ ๊ฐ๋ณ๊ณ ๊ท์ฌ์ด ์๋ฌ๋ฅผ ๋ง์ฃผ์ณค๋ค. ์ฝ๊ฒ ํด๊ฒฐํด์ ๊ธฐ๋ถ์ด ์ข๋ค.
Firebase Storage๋ฅผ ์ฌ์ฉํด์ ์ฒ์ ์ด๋ฏธ์ง๋ฅผ ์
๋ก๋ ํ๋ ค๋๋ฐ!
๊ฒฝ๊ณ ์ ํจ๊ป ๋ฌดํ ๋ก๋ฉ์ด ๋ด๋ค.
WARN : Possible Unhandled Promise Rejection
๋ด๋ ๋ฌด์จ ๊ฒฝ๊ณ ์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ ๋๋ ์๋ง๋ ์ ์. ์ด๋ฏธ์ง ์ ๋ก๋๋ฅผ ํ๋ ๋ถ๋ถ์์ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํด์ฃผ์ง ์์์ ๋ญ๊ฐ ๋ฌธ์ ์ธ์ง ์๋ฌ๊ฐ ์๋์ค๋๊ฑฐ๋ค.
memoโฆ async await๋ก ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ํ ํจ์๋ค์ ๊ผญ ์๋ฌ์ฒ๋ฆฌ๋ ์ ํด์ฃผ์โฆโ๏ธ
1
2
3
4
5
6
7
8
9
10
11
12
// try catch๋ฅผ ์ด์ฉํด์ ์๋ฌ ๋ฐ์์ ์ฝ์์ ์ถ๋ ฅํด์ฃผ๊ธฐ.
try {
if (Platform.OS === 'android') {
await reference.putString(asset.base64, 'base64', {
contentType: asset.type,
});
} else {
await reference.putFile(asset.uri);
}
} catch (err) {
console.error(err);
}
๊ทธ๋ฌ๋ฉด ์ด์ ์ง์ง ์๋ฌ๊ฐ ๋ชจ์ต์ ๋๋ฌ๋ธ๋ค.
Error: [storage/unauthorized] User is not authorized to perform the desired action.
์ด ์๋ฌ๋ Firebase Storage์ ๊ถํ ์ค์ ๋ฌธ์ ์ด๋ค.
Firebase ํ๋ก์ ํธ ์ฝ์ ์นํ์ด์ง์ ์ ์ํด์ ๋น๋ > Storage ํ์ด์ง์ ๊ฐ๋ฉด, Rules ํญ์ด ์๋ค.
๊ฑฐ๊ธฐ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ๊ถํ์ ์ค์ ํ ์ ์๋ค.
1
2
3
4
5
6
7
8
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if false;
}
}
}
read, write ๊ถํ์ด false
๋ก ๋์ด์์ด์ ์ค๋ฅ๊ฐ ๋ฌ๋ค.
1
2
3
4
5
6
7
8
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
์์ ๊ฐ์ด allow read, write
๋ผ๊ณ ์์ฑํ๋ฉด ์ฝ๊ธฐ ์ฐ๊ธฐ ๊ถํ ๋ชจ๋ true
๋ก ํ์ฉ๋๋ค. ์ค์ ์ ๋ง์น๊ณ ์ ์ฉ๋๊ธฐ๋ฅผ ์ ์ ๊ธฐ๋ค๋ฆฌ๋ฉด ์ ์๋ํ๋ค!
๋ชจ๋์๋ฌ ํด๋ฆฌ์ด๐
โฆ
๊ทธ๋ฆฌ๊ณ โฆ 10๋ถ ๋คโฆ ์ฌ์ ํ WARN : Possible Unhandled Promise Rejection
์์ ๋์ด๊ฐ์ง๋ฅผ ์๋ ๊ฒ์ด๋ค.
์ฝ์ ๊ฐ์ ์ฐ์ด๊ฐ๋ฉฐ ์ด๋์ ๋ฉ์ถ๋์ง ์ดํด๋ณด๋,
usersCollection.doc(id).set({id, displayName, photoURL});
๋ฅผ ํตํด users ์ปฌ๋ ์
์ ๋ฌธ์๋ฅผ ๋ฑ๋กํ๋ ๊ณผ์ ์์ ๋ฉ์ถ๊ฒ์ ํ์ธํ๋ค.
๊ทธ๋์ ์ธ์ ๊ฐ์ ์ดํด๋ณด๋ displayName
์ด undefined
์๋ค.
์์์ ๋๋ค์ ์ ๋ ฅ๋ฐ๋ UI์ ๊ธฐ๋ฅ ๋ค ๊ตฌํํด๋๊ณ ๋, ํ ์คํธ ํ ๋ ๋๋ค์ ์์ด ์ฌ์ง๋ง ์ ์ถํด์ ๊ทธ๋ฌ๋ ๊ฒ์ด์๋ค.
ํฟ๐