🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / Android Yeni / firebase chat

 

1-) Android Yeni -  firebase chat

firebase chat

 

1-) AndroidManifest.xml

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

package="com.example.rambo.firebasechat">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme"

tools:replace="android:supportsRtl"

 

>

<activity android:name=".MainActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.3.3'

classpath 'com.google.gms:google-services:3.1.0'

 

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

maven { url 'https://maven.fabric.io/repo' }

}

}

task clean(type: Delete) {

delete rootProject.buildDir

}

apply plugin: 'com.android.application'

 

android {

compileSdkVersion 25

buildToolsVersion "25.0.2"

defaultConfig {

applicationId "com.example.rambo.firebasechat"

minSdkVersion 16

targetSdkVersion 25

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

compile fileTree(include: ['*.jar'], dir: 'libs')

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

exclude group: 'com.android.support', module: 'support-annotations'

})

compile 'com.android.support:appcompat-v7:25.3.1'

compile 'com.android.support.constraint:constraint-layout:1.0.2'

compile 'com.google.firebase:firebase-database:11.0.2'

compile 'com.google.firebase:firebase-auth:11.0.2'

compile 'com.firebaseui:firebase-ui-auth:2.0.1'

compile 'com.facebook.android:facebook-android-sdk:4.24.0'

compile 'com.google.firebase:firebase-core:11.0.2'

testCompile 'junit:junit:4.12'

compile 'com.twitter.sdk.android:twitter-core:3.0.0'

compile 'com.google.gms:google-services:3.1.0'

}

apply plugin: 'com.google.gms.google-services'

package com.example.rambo.firebasechat;

 

 

public class Kullanici {

String

String isim;

int yas;

 

 

public Kullanici() {

}

 

}

public Kullanici(String isim, int yas) {

this.isim = isim;

this.yas = yas;

}

 

}

public String getIsim() {

return isim;

}

 

}

public void setIsim(String isim) {

this.isim = isim;

}

 

}

public int getYas() {

return yas;

}

 

}

public void setYas(int yas) {

this.yas = yas;

}

}

}

}

package com.example.rambo.firebasechat;

import android.content.Intent;

import android.support.annotation.NonNull;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

import com.firebase.ui.auth.AuthUI;

import com.google.firebase.auth.FirebaseAuth;

import com.google.firebase.auth.FirebaseAuthException;

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 java.util.Arrays;

 

public class MainActivity extends AppCompatActivity {

Button btn_ekle;

Button btn_gor;

Button btn_nesne_ekle;

Button btn_nesne_gor;

Button btn_cikis;

EditText et_isim;

EditText et_isim1;

EditText et_yas;

TextView tv_gor;

TextView nesne_gelenler;

FirebaseDatabase db;

FirebaseAuth mFirebaseAuth;

FirebaseAuth.AuthStateListener mAuthStateListener;

public static final int RC_SIGN_IN=1;

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode==RC_SIGN_IN){

if (requestCode==RESULT_OK){

Toast.makeText(this, "giriş yapıldı", Toast.LENGTH_SHORT).show();

}else if(requestCode==RESULT_CANCELED){

finish();

}

}else{

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

 

btn_ekle = (Button) findViewById(R.id.btn_ekle);

btn_gor = (Button) findViewById(R.id.btn_gor);

btn_cikis = (Button) findViewById(R.id.btn_cikis);

btn_nesne_ekle = (Button) findViewById(R.id.btn_nesne_ekle);

btn_nesne_gor = (Button) findViewById(R.id.btn_nesne_gor);

et_isim = (EditText) findViewById(R.id.et_isim);

et_isim1 = (EditText) findViewById(R.id.et_isim1);

et_yas = (EditText) findViewById(R.id.et_yas);

tv_gor = (TextView) findViewById(R.id.tv_gor);

nesne_gelenler = (TextView) findViewById(R.id.nesne_gelenler);

db = FirebaseDatabase.getInstance(); // firebase baglandı

mFirebaseAuth = FirebaseAuth.getInstance();

mAuthStateListener = new FirebaseAuth.AuthStateListener() {

@Override

public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {

FirebaseUser firebaseUser=firebaseAuth.getCurrentUser();

if (firebaseUser!=null){// giriş yaptı ise

//firebaseUser.getDisplayName(); ismini profil resmini felan alabiliriz url'sini

Toast.makeText(MainActivity.this, "giriş yapti", Toast.LENGTH_SHORT).show();

}else{ // giriş yapmadı ise --> kaydol ekranı

startActivityForResult(// yukarıda ovveride ettim metodu

AuthUI.getInstance()

.createSignInIntentBuilder()

.setIsSmartLockEnabled(false)// otomatik hemen gitmesin id,şifre

.setAvailableProviders(

Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),

new AuthUI.IdpConfig.Builder(AuthUI.PHONE_VERIFICATION_PROVIDER).build(),

new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),

new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build(),

new AuthUI.IdpConfig.Builder(AuthUI.TWITTER_PROVIDER).build()))

.build(),

RC_SIGN_IN);

}

}

};

btn_ekle.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

yapilacakEkle(et_isim.getText().toString());

}

});

btn_gor.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

yapilacaklariGor();

}

});

btn_nesne_ekle.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

kullaniciKayitEt(et_isim1.getText().toString(), Integer.valueOf(et_yas.getText().toString()));

}

});

btn_nesne_gor.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

kullaniciGor();

}

});

btn_cikis.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

FirebaseAuth.getInstance().signOut();

}

});

}

@Override

protected void onResume() {

super.onResume();

mFirebaseAuth.addAuthStateListener(mAuthStateListener);

}

@Override

protected void onPause() {

super.onPause();

if (mAuthStateListener!=null){

mFirebaseAuth.removeAuthStateListener(mAuthStateListener);

}

}

private void yapilacakEkle(String isim) {

/* // günceller

DatabaseReference dbRef=db.getReference("yapilacaklar");

dbRef.setValue(isim);

*/

DatabaseReference dbRef = db.getReference("yapilacaklar");

String key = dbRef.push().getKey();

DatabaseReference dbRefyeni = db.getReference("yapilacaklar/" + key);

dbRefyeni.setValue(isim);

 

}

private void yapilacaklariGor() {

DatabaseReference dbRef = db.getReference("yapilacaklar");

// dbRef.addValueEventListener();//uygulama açıldıktan sonra veri tabanındaki verileri yüklenir.. uygulama açıldıktan sonra veri tabanındaki değişiklik uygulamaya anında yansır

// dbRef.addListenerForSingleValueEvent(); // uygulama açıldıktan sonra veri tabanındaki verileri yüklenir.. anında yansıma yok

// dbRef.addChildEventListener();// child yani dalları dinler

dbRef.addValueEventListener(new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot dataSnapshot) {

tv_gor.setText("");

Iterable<DataSnapshot> keys = dataSnapshot.getChildren();

for (DataSnapshot key : keys) {

tv_gor.append(key.getValue().toString() + "\n");

}

}

@Override

public void onCancelled(DatabaseError databaseError) {

}

});

}

public void kullaniciKayitEt(String isim, int yas) {

Kullanici nesne = new Kullanici(isim, yas);

DatabaseReference dbRef = db.getReference("Kullanicilar");

String key = dbRef.push().getKey();

DatabaseReference dbRefKeyli = db.getReference("Kullanicilar/" + key);

dbRefKeyli.setValue(nesne);

}

public void kullaniciGor() {

nesne_gelenler.setText("");

DatabaseReference dbRef = db.getReference("Kullanicilar"); // tum cocukları getirir

dbRef.addListenerForSingleValueEvent(new ValueEventListener() { // addListenerForSingleValueEvent --> realtime çalışmaz boyle yazarsan sadece getirir

@Override

public void onDataChange(DataSnapshot dataSnapshot) {

for (DataSnapshot gelenler : dataSnapshot.getChildren()) {

nesne_gelenler.append(gelenler.getValue(Kullanici.class).getIsim() + "\n");

}

}

@Override

public void onCancelled(DatabaseError databaseError) {

}

});

}

}

 

2-) build.gradle(project)

 

3-) build.gradle(Module:app)

 

4-) Kullanici.java MainActivity

 

5-) MainActivity.java

 

6-)

 2021 Ocak 18 Pazartesi
 431