Merhaba arkadaşlar bu gün ki makalem de firebase konusunu bir adım daha ileriye götürüp storage özelliğine değineceğim.
Bir önceki makalem de firebase’in sunmuş olduğu uygulamaya gmail ile login olma özelliğine değinmiştim. Buradan okuyabilirsiniz.
package com.example.teka.icim_rahat; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.annotation.Nullable; import android.view.View; import android.widget.Button; import android.widget.Spinner; import android.widget.Toast; import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.storage.StorageReference; import com.google.firebase.storage.UploadTask; /** * Created by teka on 25.7.2017. */ public class profil_duzenle extends Activity { EditText okuladi,okulil,okulilce; Button kaydet,cikis,fotografekle; private StorageReference mStorageRef; FirebaseDatabase database; DatabaseReference myRef; private FirebaseAuth auth; private static final int IMAGE_PICKER_SELECT=3; private FirebaseAuth.AuthStateListener authStateListener; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.profil_duzenle); kaydet=(Button)findViewById(R.id.kaydet); cikis=(Button)findViewById(R.id.cikis); fotografekle=(Button)findViewById(R.id.galeri); fotografekle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, IMAGE_PICKER_SELECT); } }); cikis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { auth.signOut(); startActivity(new Intent(profil_duzenle.this, MainActivity.class)); finish(); } });} @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode==IMAGE_PICKER_SELECT&&resultCode==RESULT_OK){ Uri uri=data.getData(); StorageReference reference=mStorageRef.child("resim"); reference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Uri downloadUrl=taskSnapshot.getDownloadUrl(); Toast.makeText(profil_duzenle.this, "kayıt tamam", Toast.LENGTH_SHORT).show(); } }); } } }
Öncelikle çıkış butonundan bahsetmek istiyorum. Email password veya gmail ile Uygulamaya giriş yapıldığında auth.signOut() methodu ile uygulamadan çıkışı yapılır. Bu method çalıştıktan sonra kullanıcının uygulamaya tekrardan login olması gerekmektedir.
Fotografekle butonuna tıklandığında, kullanıcının telefonunun galerisinden bir fotograf seçip onu firebase kaydetmesi hedeflenir. Buton’a tıklandığında telefonun galerisine gidecek bir intent oluşturulur . Sonra onActivityResult methodu ilk etapda belirlediğimiz requestCode ve intent’den dönem değer ile çağrılır. Bu methodun içinde galeriden seçilen fotografın url’ i alınır ve firebase de resim adında oluşturulan klasörün altına kaydedilir.
Son olarak kayıt işleminin doğruluğu kontrol edilir. Kayıt başarılı olmuş ise ekrana Toast mesajı ile kayıt tamam bildirimi gösterilir.
Bir makalenin daha sonuna geldik, esenle kalın..