Ich nehme eine Referenz von FirebaseStorage, ich möchte den Wert speichern, die eine Bild-URL ist, hier ist mein Code:Wie deklariert man den endgültigen Uri, wenn FirebaseStorage verwendet wird?
//FirebaseStorage
String path="firememes/"+ UUID.randomUUID()+".png";
StorageReference firememeRef=storage.getReference(path);
StorageMetadata metadata=new StorageMetadata.Builder()
.setCustomMetadata("text","測試").build();
Uri url;
UploadTask uploadTask=firememeRef.putBytes(bytes,metadata);
StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = uploadTask.addOnSuccessListener(MainActivity.this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
//it shows inner class , need to declared final
url = taskSnapshot.getDownloadUrl();
Log.d("url>",url.toString());
}
});
aber wenn ich bis zur endgültigen Finale Uri url ändern; es zeigt Kann kein Wert zur endgültigen Variable 'url'
Ich möchte url.toString Wert erhalten und speichern, wie Sie die globale Variable für Uri setzen, würde jede Hilfe geschätzt werden, danke im Voraus.
Vielen Dank für Ihre Antwort, aber ich möchte den URL-Wert von außen verwenden, so dass ich nicht die Variable URL innerhalb des Rückrufs wollen. Ich versuche endgültige Uri URL, die nicht definiert werden kann –
Firebase Task Callbacks sind alle asynchron. Sie müssen Ihre Arbeit innerhalb des Rückrufs fortsetzen. –
danke die Information, ich habe es jetzt –