0
package com.example.trial_myapp;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

public class MainActivity extends AppCompatActivity {

    private Button b1,b2;
    private Uri imageuri;
    FirebaseAuth auth;


    @Override
    protected void onActivityResult(int requestCode, int resultCode,Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK&&requestCode==1&&data.getData()!=null)
        {
            //Toast.makeText(MainActivity.this,"onactivity wala",Toast.LENGTH_SHORT).show();
            imageuri = data.getData();
            chosefile(imageuri);
        }
    }

    private void chosefile(Uri imageuri) {
        //Toast.makeText(MainActivity.this,"choose file wala",Toast.LENGTH_SHORT).show();
        ProgressDialog pd = new ProgressDialog(MainActivity.this);
        pd.setMessage("uploading");
        pd.show();
        StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("uploads").child(System.currentTimeMillis()+"."+getFileExtension(imageuri));
        storageReference.putFile(imageuri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri uri) {
                        Toast.makeText(MainActivity.this,"uploaded successfully",Toast.LENGTH_SHORT).show();
                        FirebaseDatabase.getInstance().getReference().child("uploads").push().setValue(uri.toString())
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete( Task<Void> task) {
                                if(task.isSuccessful())
                                {
                                    Toast.makeText(MainActivity.this,"success",Toast.LENGTH_LONG).show();
                                }
                                else
                                {
                                    Toast.makeText(MainActivity.this,"failure",Toast.LENGTH_LONG).show();
                                }
                            }
                        });
                        String k = uri.toString();
                        Log.d("msg",k);
                        Toast.makeText(MainActivity.this,k,Toast.LENGTH_SHORT).show();

                    }
                });
                pd.dismiss();
            }
        });

    }

    private String getFileExtension(Uri imageuri) {
        ContentResolver contentResolver = getContentResolver();
        MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
        //Toast.makeText(MainActivity.this,"extension wala",Toast.LENGTH_SHORT).show();
        return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(imageuri));

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        b1 = findViewById(R.id.add_image);
        b2 = findViewById(R.id.show_image);
        auth = FirebaseAuth.getInstance();



        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //FirebaseDatabase.getInstance().getReference().child("cc").setValue("hello");
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(intent.ACTION_GET_CONTENT);
                startActivityForResult(intent,1);
                //Toast.makeText(MainActivity.this,"intent wala",Toast.LENGTH_SHORT).show();
            }
        });

        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent( MainActivity.this,Showimages.class));
            }
        });


    }


}


i am getting the link to the image in Log.d and the toast

Toast.makeText(MainActivity.this,"uploaded successfully",Toast.LENGTH_SHORT).show();

AND

Toast.makeText(MainActivity.this,k,Toast.LENGTH_SHORT).show();

are both shown but url is not saved in realtime database...saw some ques on stackoverflow but didn't found answer the image is getting saved in firebase storage.

if i add this

FirebaseDatabase.getInstance().getReference().child("cc").setValue("hello");

on b1.setonclick... then also it is not added in realtime database.

On same browser for another app data is being added to both realtime db and storage, the code is similar in both apps.

0 Answers0