2017-12-22 18 views
1

Ich versuche, ein Benutzerprofil Bild von Feuerbasis Speicher zu laden, aber ich halte in Ursache laufen (1 von 1):Firebase Speicherregeln bewirken, dass Benutzer keinen Zugriff

Klasse com.google.firebase.storage .StorageException: Der Benutzer hat keine Berechtigung, auf dieses Objekt zuzugreifen.

authentifizierten Benutzer mit:

mFirebaseAuth.signInWithEmailAndPassword(mEmailView.getText().toString(), mPasswordView.getText().toString()) 

Hier ist meine Feuerbasis Regeln sind:

service firebase.storage { 
    match /b/brainbeats-e9839.appspot.com/o { 
    match /user/{userId}/{allPaths=**} { 
     allow read, write: if request.auth.uid == userId; 
    } 
    } 
} 

Laden mit gleiten wie folgt aus:

StorageReference storageReference = FirebaseStorage.getInstance().getReference(); 
    StorageReference imageStorage = storageReference.child("images/" + user.getArtistProfileImage()); 

    GlideApp.with(this) 
      .load(imageStorage) 
      .into(mArtistCoverImage); 
+0

Es wird schwer für jeden sein, mehr zu sagen als die Fehlermeldung sagt, ohne zu sehen, '. –

+0

haben Sie FirebaseAuth verwendet, um den Benutzer einzuloggen? Wenn dies nicht der Fall ist, melden Sie sich für ein einfaches Testen anonym an und verwenden Sie es dann, bis Sie andere Methoden verwenden . Verweise https://firebase.google.com/docs/auth/ – Kushan

Antwort

0

Nun Ihre Regel gewährt den Zugriff für die folgende:

/user/{userId}/{allPaths=**} 

so dass jeder Pfad unter Benutzer dann eine Benutzer-ID Standort und dann alles

Aber Sie zugreifen

/images/xyzpath 

Nun, da diese nicht unter/user/Variable Benutzer-ID/ist, erhalten Sie eine Ausnahme.

warum nicht verschieben Bilder unter Benutzerknoten wie:

/user/{userId}/images/yourpath 

Diese Fehler geben sollte aufhören, wenn die Auth-Regel entspricht. Wenn ein unbefugter Benutzer auf eine andere Benutzer-ID zugreift, stürzt es immer noch ab, also wird alles in einen try-catch-Block gesetzt

Verwandte Themen