2016-07-24 8 views
1

Ich glaube, meine Implementierung ist falsch, aber ich kann mich nicht darum kümmern. ich für Tutorials gesucht, aber nicht finden können, ist es nur die offizielle Dokumentation i, die detailliert zu viel gibt für mich zu verstehen :)Firebase-Image-Download aus dem Speicher fehlgeschlagen

//initialize 
    FirebaseStorage storage = FirebaseStorage.getInstance(); 
    // Points to the root reference 
    StorageReference storageRef = storage.getReferenceFromUrl("gs://nse-ninja.appspot.com"); 

    // Create a child reference 

    // imagesRef now points to "images" 
    StorageReference imagesRef = storageRef.child("images"); 
    StorageReference spaceRef = storageRef.child("images/games.png"); 

    File localFile = null; 
    try { 
     localFile = File.createTempFile("games", "png"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    spaceRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 
     @Override 
     public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
      Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show(); 
     } 
    }).addOnFailureListener(new OnFailureListener() { 
     @Override 
     public void onFailure(@NonNull Exception exception) { 
      Toast.makeText(MainActivity.this, "Failed to download", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

Nach dem gescheiterten Toast läuft hält

Aufspringen hier ist logcat

E/StorageException: StorageException has occurred. 
               User does not have permission to access this object. 
                Code: -13021 HttpResult: 403 
+0

Kannst du hier geworfen Fehler bitte posten? –

+1

Fügen Sie eine Protokollanweisung wie folgt zu 'onFailure()' hinzu, um zu sehen, was der Fehler ist: 'Log.d (TAG," Download fehlgeschlagen: "+ exception.getMessage());' –

+0

Was ist Firebase-Leute? Wollte nur ein wenig Grundwissen haben? –

Antwort

2

Dies ist wahrscheinlich, weil Ihr security rules keinen Zugriff erlauben. Sie können Ihre Regeln „public“ ändern Sie die folgenden Regeln unter Verwendung von:

service firebase.storage { 
    match /b/nse-ninja.appspot.com/o { 
    match /{allPaths=**} { 
     allow read, write; 
    } 
    } 
} 

lesen the docs für ein paar mehr Infos!

+0

Das hat funktioniert, danke – PeterOla

Verwandte Themen