Uncaught (in promise) FirebaseError: Firebase Storage: An unknown error occurred, please check the error payload for server response. (storage/unknown)
{
"error": {
"code": 400,
"message": "Your bucket has not been set up properly for Firebase Storage. Please visit 'https://console.firebase.google.com/project/nwitter-133f3/storage/files' to automatically repair this issue and then retry. If the issue lasts longer than five minutes, you may have insufficient permissions to repair the project. You can check your permissions by visiting 'https://console.firebase.google.com/iam-admin/iam/project?project=nwitter-133f3'."
}
}
검색해서 나온 것 중 시도해 본 것은 여러개인데, 두개만 적어보겠다.
난 첫번째껄로 성공했지만, 혹시나 다음엔 다른 게 될 수 있으니까!
(틈틈이 찾아서 적용한거라 3일 걸림..)
1. 내가 해결한 방법.
책으로 보면서 따라하다가 막혀서..
동영상으로 답을 얻을 수 있지 않을까 싶어서
동영상을 보기 시작했는데 마찬가지여서 암울하던 중에
혹시나 싶어 댓글을 봤는데 이미 겪어보신 분들의 댓글이 있었다.
나도 딱 3일차 고생중이었는데..집단지성의 힘은 역시 최고다.
firebase의 storage로 들어간다.
Rules에 들어가면 규칙들을 볼 수 있다.
여기에서 맨 마지막줄이 처음엔
write : if false;
로 되어 있었다.
이걸 write : if true;로 변경한다.
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if false;
}
}
}
before
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
after case1
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
after case2
write: if false;
이 부분을
write: if request.auth != null;
or
write: if true;
이렇게 변경.
if true
이걸로만 변경해도 잘된다.
어이가 없는건..
내가 이미 이걸 봤는데, 저걸 어디에 반영하는건지 몰라서
그냥 다 지나쳤다는 거였다 ㅠㅠ
그 이후 파일을 다시 저장해보면 uid 폴더 아래에
랜덤으로 명명한 파일명이 지정되어 들어가있는 것을 볼 수 있다.
2. 이건 그냥 참고용. 두번째 방법.
(캡쳐를 처음부터 안해서 정확히 위치를 모르겠다 ㅠㅠ)
아무튼 내가 갖고 있던 버킷을 모두 선택하고,
(두번째, 세번째 캡쳐는 같은 화면)
주 구성원 추가에서 firebase-storage@system.gserviceaccount.com 을 추가해주고
역할에서 cloud storage를 저장소관리자로 선택.
Firebase 처음 쓸 때 완전 좋아하고,
Firebase storage로 고생했다가..ㅋㅋ
또 방법을 찾으니 다시 좋아졌다!!!