Tuesday, October 5, 2021

UPdate and Featch Image in Realbase Datatype

 

UPdate and Featch Image in Realbase Database

 

Xml code:-

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:orientation="vertical"
   
tools:context=".profile">

    <
ImageView
       
android:id="@+id/uimage"
       
android:layout_width="200dp"
       
android:layout_height="200dp"
       
android:layout_gravity="center"
       
android:layout_marginTop="100dp"
       
android:src="@drawable/ic_launcher_background"/>


    <
EditText
       
android:layout_width="300dp"
       
android:layout_height="wrap_content"
       
android:id="@+id/uname"
       
android:textSize="20sp"
       
android:layout_gravity="center"
       
android:layout_marginTop="20dp"
       
android:hint="Update Your Name"/>

    <
Button
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="Update Info"
       
android:id="@+id/btnupdate"
       
android:layout_gravity="center"
       
android:textSize="25sp"
       
android:layout_marginTop="20sp"
       
android:padding="12dp"/>

</
androidx.appcompat.widget.LinearLayoutCompat>

 

 

Java Codes:-

 

 

package com.niranjan.youtuberegisterlogin;

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

import android.Manifest;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.OnProgressListener;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionDeniedResponse;
import com.karumi.dexter.listener.PermissionGrantedResponse;
import com.karumi.dexter.listener.PermissionRequest;
import com.karumi.dexter.listener.single.PermissionListener;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

public class profile extends AppCompatActivity {
    ImageView
uimage;
    EditText
uname;
    Button
btnupdate;

    DatabaseReference
dbreference;
    StorageReference
storageReference;

    Uri
filepath;
    Bitmap
bitmap;
    String
UserID="";

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.
activity_profile);
       
uimage=(ImageView)findViewById(R.id.uimage);
       
uname=(EditText) findViewById(R.id.uname);
       
btnupdate=(Button)findViewById(R.id.btnupdate);

        FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
       
UserID=user.getUid();

       
dbreference= FirebaseDatabase.getInstance().getReference().child("userprofile");
       
storageReference= FirebaseStorage.getInstance().getReference();

       
uimage.setOnClickListener(new View.OnClickListener() {
           
@Override
           
public void onClick(View view) {

                Dexter.withContext(getApplicationContext())
                        .withPermission(Manifest.permission.
READ_EXTERNAL_STORAGE)
                        .withListener(
new PermissionListener() {
                           
@Override
                           
public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {
                                Intent intent=
new Intent();
                                intent.setType(
"image/*");
                                intent.setAction(Intent.
ACTION_GET_CONTENT);
                                startActivityForResult(Intent.createChooser(intent,
"Please Select File"),101);
                            }

                           
@Override
                           
public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {

                            }

                           
@Override
                           
public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {
                                permissionToken.continuePermissionRequest();
                            }
                        }).check();

            }
        });

       
btnupdate.setOnClickListener(new View.OnClickListener() {
           
@Override
            
public void onClick(View view) {
                updatetofirebase();
            }
        });
    }

   
@Override
   
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
       
super.onActivityResult(requestCode, resultCode, data);
       
if(requestCode==101 && resultCode==RESULT_OK)
        {
           
filepath=data.getData();
           
try {
                InputStream inputStream=getContentResolver().openInputStream(
filepath);
               
bitmap= BitmapFactory.decodeStream(inputStream);
               
uimage.setImageBitmap(bitmap);
            }
catch (Exception ex)
            {
                Toast.makeText(getApplicationContext(),ex.getMessage(),Toast.
LENGTH_LONG).show();
            }
        }
    }


   
public void updatetofirebase()
    {
       
final ProgressDialog pd=new ProgressDialog(this);
        pd.setTitle(
"File Uploader");
        pd.show();

       
final StorageReference uploader=storageReference.child("profileimages/"+"img"+System.currentTimeMillis());
        uploader.putFile(
filepath)
                .addOnSuccessListener(
new OnSuccessListener<UploadTask.TaskSnapshot>() {
                   
@Override
                   
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                       
uploader.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                           
@Override
                           
public void onSuccess(Uri uri) {
                                
final Map<String,Object> map=new HashMap<>();
                                map.put(
"uimage",uri.toString());
                                map.put(
"uname",uname.getText().toString());

                               
dbreference.child(UserID).addValueEventListener(new ValueEventListener() {
                                   
@Override
                                   
public void onDataChange(@NonNull DataSnapshot snapshot) {
                                       
if(snapshot.exists())
                                            
dbreference.child(UserID).updateChildren(map);
                                       
else
                                           
dbreference.child(UserID).setValue(map);
                                    }
                                   
@Override
                                   
public void onCancelled(@NonNull DatabaseError error) {
                                    }
                                });

                               
pd.dismiss();
                                Toast.makeText(getApplicationContext(),
"Updated Successfully",Toast.LENGTH_LONG).show();
                            }
                        });
                    }
                })
                .addOnProgressListener(
new OnProgressListener<UploadTask.TaskSnapshot>() {
                   
@Override
                   
public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
                       
float percent=(100*snapshot.getBytesTransferred())/snapshot.getTotalByteCount();
                       
pd.setMessage("Uploaded :"+(int)percent+"%");
                    }
                });

    }

   
@Override
   
protected void onStart() {
       
super.onStart();

        FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
       
UserID=user.getUid();
       
dbreference.child(UserID).addValueEventListener(new ValueEventListener() {
           
@Override
           
public void onDataChange(@NonNull DataSnapshot snapshot) {
               
if(snapshot.exists()) {
                   
uname.setText(snapshot.child("uname").getValue().toString());
                    Glide.with(getApplicationContext()).load(snapshot.child(
"uimage").getValue().toString()).into(uimage);
                }
            }

           
@Override
           
public void onCancelled(@NonNull DatabaseError error) {

            }
        });
    }
}

 

 

 

Single Image Upload in firebase with uri

 

Xml:-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:orientation="vertical"
   
tools:context=".MainActivity">

<
ImageView
   
android:background="@drawable/ic_launcher_background"
   
android:layout_width="200dp"
   
android:layout_height="200dp"
 
android:layout_gravity="center"
 
android:id="@+id/pickimage"/>

<
Button
   
android:layout_width="wrap_content"
   
android:layout_height="wrap_content"
 
android:text="Upload"
android:layout_gravity="center"
 
android:id="@+id/upload"/>
</
LinearLayout>

 

 

Java Code:-

 

package com.niranjan.fireapp;

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

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

import java.util.Map;

public class MainActivity extends AppCompatActivity {
ImageView
imageView;
Uri
uri;
   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView(R.layout.
activity_main);

       
imageView= findViewById(R.id.pickimage);
        FirebaseStorage storage = FirebaseStorage.getInstance();
        StorageReference reference=storage.getReference();


       
imageView.setOnClickListener(new View.OnClickListener() {
           
@Override
           
public void onClick(View v) {
                Intent intent =
new Intent();
                intent.setType(
"image/*");
                intent.setAction(Intent.
ACTION_GET_CONTENT);
                startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 174);
            }
        });
        findViewById(R.id.
upload).setOnClickListener(new View.OnClickListener() {
           
@Override
           
public void onClick(View v) {
               
if (uri!=null){
StorageReference demoRef =
reference.child("demo.jpg");
demoRef.putFile(
uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
   
@Override
   
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

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

       
demoRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
           
@Override
           
public void onSuccess(Uri Downloduri) {
                FirebaseDatabase database =FirebaseDatabase.getInstance();
                DatabaseReference mref = database.getReference(
"ImageUrl");
                mref.setValue(Downloduri.toString());
            }
        });
    }
});
                }
            }
        });



    }

   
@Override
   
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
       
super.onActivityResult(requestCode, resultCode, data);
       
if (requestCode == 174 && resultCode==RESULT_OK){
           
uri=data.getData();
           
if (uri!=null){
                Glide.with(MainActivity.
this).load(uri).into(imageView);

            }
        }
    }
}

 

No comments:

Post a Comment

Activity Navigation One Activity to another Activity

Main Activity :-   <? xml version ="1.0" encoding ="utf-8" ?> < RelativeLayout xmlns: android ="http://sch...