L'utilisateur n'est pas autorisé à accéder à cet objet . Firebase stockage android

Je suis nouveau sur firebase de stockage. Juste pour que je puisse apprendre cela, j'ai fait une application simple qui a un bouton et un ImageView. Quand je clique sur le bouton, une image (from drawable) est affiché sur l'ImageView. J'ai aussi écrit le code pour télécharger l'image sur Firebase, mais le message de l'exception de onAddFailureListener donne message Utilisateur n'est pas autorisé à accéder à cet objet. Que dois-je faire ?

package com.example.asad.save_photo;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.net.Uri;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageMetadata;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import java.io.ByteArrayOutputStream;
import java.io.File;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReferenceFromUrl("gs://savephoto-a1cc3.appspot.com");
final StorageReference mountainsRef = storageRef.child("asad");
Button butt = (Button) findViewById(R.id.button);
butt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(R.drawable.back2);
//imageView.setImageResource(R.drawable.back2);
imageView.setDrawingCacheEnabled(true);
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
final byte[] data = baos.toByteArray();
UploadTask uploadTask = mountainsRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
//Handle unsuccessful uploads
showToast(exception.getMessage());
}
});
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
//taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
//Uri downloadUrl = taskSnapshot.getDownloadUrl();
showToast("success !!!!!");
}
});
}
});
}
public void showToast(String s) {
Toast.makeText(this,s,Toast.LENGTH_LONG).show();
}
}

Voici mon firebase de stockage de règles

service firebase.storage {
match /b/savephoto-a1cc3.appspot.com/o {
allow read,write;
}
}
  • votre version de l'OS est de 6.0 ? si oui, alors obtenir de l'exécution l'autorisation de stackoverflow.com/questions/38141523/...
  • Nope. Ma version de l'OS est de 4,2
  • Avez-vous ajouter des autorisations dans le fichier de manifeste?
  • <uses-permission android:name="android.la permission.READ_EXTERNAL_STORAGE" /> C'est la seule que j'ai ajouté. Je suis vraiment nouveau, donc n'hésitez pas à signaler les erreurs
  • <uses-permission android:name="android.la permission.INTERNET" /> celui-là aussi.
InformationsquelleAutor ashay | 2016-07-30