Разрешения Firebase для хранения папок - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь загрузить аудиофайл в мое хранилище Firebase.
Внутри корзины есть папка с user_id, она должна загрузить файл в эту конкретную папку, но суть в том, что только этот пользователь должениметь возможность доступа к своей собственной папке.Я заглянул в документацию и соответственно установил правило, но, похоже, у меня проблема с разрешением

{  "error": {    "code": 403,    "message": "Permission denied. Could not perform this operation"  }}

Мое правило

service firebase.storage {
match /b/{bucket}/o {
  match /{userId} {
    match /{allPaths=**}{
     allow read, write: if request.auth.uid == userId;
    } 
   }
 }
}

Code Snip

String userUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
final StorageReference audioRef = storageRef.child("/ "+ userUid +"/"+filename());

 //rest of upload task here..

Код загрузки работает отлично, когда я устанавливаю правило для публичного доступа.Может кто-нибудь помочь мне выяснить, что не так с правилом, которое я написал?

1 Ответ

0 голосов
/ 26 октября 2018

Для этого необходимо добавить аутентификацию Firebase. После этого добавьте это разрешение.Перейдите по этой ссылке Правила безопасности Firebase для облачного хранилища Справочник

Пришли к выводу, что вам не хватает имени вашего хранилища Firebase.

service firebase.storage {
match /b/{Pass your firebase storage bucket name here}/o {
  match /{userId} {
    match /{allPaths=**}{
     allow read, write: if request.auth.uid == userId;
    } 
   }
 }
}
...