0

"이 개체에 액세스 할 권한이 없습니다"가 나타납니다. 내가 지금처럼 중포 기지에 사용자 이름의 루트에있는 모든 파일에 각 사용자의 권한을 부여하려고 할 때 :Firebase 사용자 특정 권한 와일드 카드

service firebase.storage { 
    match /b/bucketname.appspot.com/o { 
    match /users/{userId}/* { 
     allow read; 
     allow write: if request.auth.uid == userId; 
    } 
    } 
} 

그리고 안드로이드에서 여기에 내가 enter image description here

을 보내고 파일의 샘플입니다

그러나 com.google.firebase.storage.StorageException가 표시됩니다. 사용자에게이 개체에 대한 액세스 권한이 없습니다.

어떻게 권한을 다르게 설정할 수 있습니까? 여기

, 나는 자신의 사용자 후 경로에

+0

인증없이 모든 사용자에게 권한을 부여하려고합니까? – OBX

+0

아니요 인증시, userId 변수를 Auth 사용자 ID의 값과 일치시킵니다. –

+0

인증 된 사용자에 대해 모든 것을 읽을 수있게 허용합니다. –

답변

2
아이디를 작성하는 인증 된 사용자 권한을 부여하려는 그러나 대신 특정 파일에 대한 사용자 액세스를주는

// Only a user can upload their profile picture, but anyone can view it 
match /users/{userId}/profilePicture.png { 
    allow read; 
    allow write: if request.auth.uid == userId; 
} 

https://firebase.google.com/docs/storage/security/user-security에서 공식 예입니다

다음과 같이 시도하십시오.

service firebase.storage { 
    match /b/xxxx.appspot.com/o { 
    match /{allPaths=**} { 
     allow read; 
     allow write: if request.auth != null; 
    } 
    } 
} 
+0

에서 예제를 사용하여 질문을 업데이트했습니다. –

+0

도움을 주셔서 감사합니다. :) – OBX