Comment faire pour télécharger une image de Firebase de stockage?
Je suis en train de télécharger un simple tableau d'octets en Firebase de stockage, mais mon onFailureListener
reçoit de l'appelé et de vous connecter à nouveau à moi en me disant que le téléchargement a échoué. J'espère que vous les gars, vous pouvez me dire quel est le problème avec mon code.
En haut j'ai eu
//Firebase
private Firebase mRef;
private StorageReference storageRef;
Puis dans onStart()
@Override
protected void onStart() {
super.onStart();
googleApiClient.connect();
//Firebase
mRef = new Firebase("link to firebase account");
FirebaseStorage storage = FirebaseStorage.getInstance();
storageRef = storage.getReferenceFromUrl("link to storage");
}
Ensuite dans mon onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
addImageImageView.setVisibility(View.GONE);
if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK && data != null) {
//First we gotta make sure to add the images to
ArrayList<Image> imagesFromGallery = data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES);
for (int i = 0; i < imagesFromGallery.size(); i++)
{
try {
//try uploading it
InputStream stream = new FileInputStream(new File(imagesFromGallery.get(i).path));
StorageReference imageStorage = storageRef.child("cardImages/" + "testImages");
UploadTask uploadTask = imageStorage.putStream(stream);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("myStorage","failure :(");
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Log.d("myStorage","success!");
}
});
catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Voici mon stack trace:
11-13 21:27:00.392 31388-996/com.daprlabs.aaron.swipedeck2 E/StorageException: StorageException has occurred.
User does not have permission to access this object.
Code: -13021 HttpResult: 403
11-13 21:27:00.392 31388-996/com.daprlabs.aaron.swipedeck2 E/StorageException: The server has terminated the upload session
java.io.IOException: The server has terminated the upload session
at com.google.firebase.storage.UploadTask.az(Unknown Source)
at com.google.firebase.storage.UploadTask.ay(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.StorageTask$5.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
11-13 21:27:00.406 31388-31388/com.daprlabs.aaron.swipedeck2 D/myStorage: failure :(
Dans
Avez-vous donné les autorisations INTERNET?
Le documentation explique que, par défaut, les règles de sécurité pour Firebase de Stockage nécessitent une authentification. Avez-vous connecté l'utilisateur ou changé les règles pour permettre l'accès du public?
je viens de mettre à jour ma trace de la pile
onFailure()
, ajouter e.getMessage()
le message de log pour voir la raison de l'exception.Avez-vous donné les autorisations INTERNET?
Le documentation explique que, par défaut, les règles de sécurité pour Firebase de Stockage nécessitent une authentification. Avez-vous connecté l'utilisateur ou changé les règles pour permettre l'accès du public?
je viens de mettre à jour ma trace de la pile
OriginalL'auteur TheQ | 2016-11-14
Vous devez vous connecter pour publier un commentaire.
Vous devez vous inscrire à l'utilisateur ou modifier les règles de sécurité pour permettre l'accès du public. Ceci est expliqué dans la documentation de Firebase De Stockage De Sécurité.
Pour le développement initial, vous pouvez changer les règles à la Firebase Console pour permettre l'accès du public:
OriginalL'auteur Bob Snyder
- Je télécharger des images à l'aide de ce code :
Dépendance :
Niveau Du Projet Gradel :
classpath 'com.google.gms:google-services:3.0.0'
App Niveau De Gradel :
compile 'com.google.firebase:firebase-storage:9.0.2'
Au niveau du projet, gradel nous avons besoin pour classpath 'com.google.gms:google-services:3.0.0 " et app niveau de gradel, nous avons besoin de la compilation com.google.firebase:firebase-stockage:9.0.2 " définir
ouais j'ai compris cela et a essayé votre code, toujours pas bon :/
OriginalL'auteur Dhaval Solanki
Simplement appeler cette méthode pour stocker votre image de firebase.
Pour plus de détails, voir ces exemples:
je veux mettre l'image dans le stockage ne pas firebase base de données
Votre premier lien n'est plus disponible.
OriginalL'auteur Magesh Pandian
cette méthode a fonctionné pour moi, comme si ce jour:
OriginalL'auteur shanezzar
Télécharger multilple images de Firebase de stockage.
C'est de travailler pour moi.
à l'aide de cette bibliothèque
En haut
onCreate()
cliquez sur le bouton d'action
Activité résultat
Sherif je vais envoyer le code source. Veuillez donner votre mail id
OriginalL'auteur Ansal Rabin