I'm having trouble uploading an image to firebase cloud storage. I get no errors/warnings, the upload just doesn't seem to work! Both the Toasts are not showing either, the app just sits idle and after a while shows "connection refused.." in the logcat.
Here's the code snippet :
private Uri fileUri;
private StorageReference storageReference;
private UploadTask uploadTask;
private String myurl = "";
private void SelectImage()
{
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, "Select Image"), 420);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==420 && resultCode==RESULT_OK && data!=null && data.getData()!=null)
{
fileUri = data.getData();
storageReference = FirebaseStorage.getInstance().getReference().child("Image Files");
final StorageReference filepath = storageReference.child(nameString+".jpg");
uploadTask = filepath.putFile(fileUri);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(MessageActivity.this, "Failed", Toast.LENGTH_SHORT).show();
// Handle unsuccessful uploads
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(MessageActivity.this, "Uploaded Successfully!", Toast.LENGTH_SHORT).show();
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
// ...
}
});
}
dependencies used:
implementation 'com.google.firebase:firebase-auth:16.0.1'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-analytics:16.0.1'
manifest.xml:
<uses-permission android:name="android.permission.INTERNET"/>
logcat:
2020-05-10 04:39:04.568 2441-3863/com.example.myproject W/NetworkRequest: error sending network request POST https://firebasestorage.googleapis.com/v0/b/myproject.appspot.com/o
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:334)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
at java.net.Socket.connect(Socket.java:586)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:113)
at com.android.okhttp.Connection.connectSocket(Connection.java:196)
at com.android.okhttp.Connection.connect(Connection.java:172)
at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367)
at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:521)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java)
at bmh.b(:com.google.android.gms.dynamite_dynamitemodulesc@16089052@16.0.89 (040700-239467275):60)
at bmh.a(:com.google.android.gms.dynamite_dynamitemodulesc@16089052@16.0.89 (040700-239467275):93)
at bmc.a(:com.google.android.gms.dynamite_dynamitemodulesc@16089052@16.0.89 (040700-239467275):35)
at rj.onTransact(:com.google.android.gms.dynamite_dynamitemodulesc@16089052@16.0.89 (040700-239467275):4)
at android.os.Binder.transact(Binder.java:499)
at com.google.android.gms.internal.firebase_storage.zza.transactAndReadExceptionReturnVoid(Unknown Source)
at com.google.android.gms.internal.firebase_storage.zzm.zze(Unknown Source)
at com.google.android.gms.internal.firebase_storage.zzq.zza(Unknown Source)
at com.google.android.gms.internal.firebase_storage.zzf.zza(Unknown Source)
at com.google.firebase.storage.UploadTask.zzc(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.StorageTask.zzl(Unknown Source)
at com.google.firebase.storage.zzx.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)