In realtà si aggiungono due listeners, uno di caricamento "andato liscio" e uno di errore nel caricamento.
Proviamo immediatamente:
UploadTask uploadTask=childRef.putBytes(b);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
}).addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
}
});
Il codice dei metodi da chiamare per i due listener viene implementato automaticamente.Ilcodice di onSuccess mi sembra interessante perché mi pare che ci si possa ricavare l'indirizzo di upload del file.
onSuccess ha come parametro un oggetto UploadTask.TaskSnapshot.
E vedo che sul tutorial c'è di mezzo un codice che potrebbe essere utile per ottenere l'indirizzo.
Il codice è semplicemente questo:
Uri downloadUrl=taskSnapshot.getDownloadUrl();ossia il codice completo è:
UploadTask uploadTask=childRef.putBytes(b);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
}).addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl=taskSnapshot.getDownloadUrl();
}
});
E proviamolo. Ci aggiungo un segnale da darmi in LogCat:
UploadTask uploadTask=childRef.putBytes(b);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
}).addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl=taskSnapshot.getDownloadUrl();
System.out.println(downloadUrl);
}
});
...e provo!Ecco! Ho ottenuto questo:
https://firebasestorage.googleapis.com/v0/b/jaccaprogetto.appspot.com/o/cazzate%2Ffacciadimerda.jpg?alt=media&token=b2040e89-d19a-415b-8d5c-d22c47b04b0de andandoci a cliccare sopra mi appare, nel browser, l'immagine in questione, che mi trovo sulla console salvata nella sottocartella "cazzate".
L'esperimento è riuscito!
Nessun commento:
Posta un commento