FacebookのログインJava Firebase Androidのスタジオ-デフォルトのログインボタンなし



アサラムアアラキム
Hai Guysは、チュートリアルBagaiamanaのcara membuat認証menggunakan Facebookのkhususnya menggunakan bahasa pemrogramanジャワdengan nosqlデータベースyaitu firebase pada android,kali ini saya akan membuatチュートリアルyang berbeda kalini iniを共有するチュートリアルYaitu Bagaimana Canyya Membuat FacebookのログインDengan MenggunakanカスタムログインボタンダンTidak Akan Menggunakanデフォルトのログインダリ依存ファセットBookknya、Oke Langsungアジャyah guyssダンtidak usahラマラマ.
パタマヤンペルーディルクラカンITU Melakukan Koneksi ProjekアンドロイドDengan Firebasenya、Kemudian LakukanインスタンカドDan Konek Dengan Projek Firebasenya、Kemudian buat baru sign Methodnya Menggunakan Metode Muxukフェイスブック、Kemudian Maskan Application ID serta Application Secret Factory Newopernya ke sign method facebooknyaUNUTUK MendapatkanアプリID sertaアプリSecretnya Terlebih Tharleh Dhulu Mendaftar Menjadiは、Facebook開発者ダンBuat Aplikasinya di https://developers.facebook.com、Setelah BuatアダPerlu MelakukanコピーペーストアプリIDダンアプリSecretnya Keメソッドメソッドfacebooknya pada firebaseです.ダンMaskan OAuthリダイレクトURI keフェイスブック開発者

OAuthリダイレクトURI

Setelah Melakukan Langkah Diatas、Langkah selanjutya - anda perlu melakukan mengaktifkanモードpengembang/開発pada Facebook開発者SemateMembuatプライバシーポリシーAplikasinyaダンKemudian Muskanプライバシーポリシーke設定:基本的なpada Facebook開発者.

Kemudian Ikuti Petjujuk Konfigurasi selanjutnya mengenaiセットアップFacebook開発者Khususnya Android https://developers.facebook.com/apps/316711430485618/fb-login/quickstart/
Setelah Melakukan Beberapa Langkah Diatas Kemudian Ka Beralih keアンドロイドStudionya!
Sebelum melakukanはTharapa aplikasinya perlu yang pertama dilakukan menambah依存性autitictication firebase nyaをコーディングします.
 implementation platform('com.google.firebase:firebase-bom:29.0.4')
    implementation 'com.google.firebase:firebase-auth:21.0.1'
    implementation 'com.facebook.android:facebook-android-sdk:12.3.0'
プラダビル.GradleプロジェクトTambahkan構文
 repositories {
        mavenCentral()
    }
Tambahkan pada baris buildscript
Selanjutnya pada gradleプロパティのプロパティ
android.useAndroidX=true
android.enableJetifier=true
Karena Kita Menambah Dependency SDK Tambahanフェイスブック、Muka Penting Untuk Memasukan Dua Baris Kode Terseis.
バーラサートインナ北茜MelakukanコーディングTharhadapレイアウトの活動.XML Facebookのログイン.

<ImageView
        android:id="@+id/fbButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/fblog_foreground" />

Kemudian pada活動ジャバ
package com.rabuncode.authlog;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import com.facebook.FacebookSdk;
import com.google.firebase.auth.FirebaseAuth;

public class MainActivity extends AppCompatActivity {

    ImageView btnFacebook;
    FirebaseAuth mAuth;

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

        mAuth = FirebaseAuth.getInstance();
        btnFacebook = findViewById(R.id.fbButton);
        btnFacebook.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, mainMenu.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                startActivity(intent);
            }
        });
    }
}
Selanjutnya - andaペルーMembuat活動baru dengan nama mainmenu(bebas loh yahh、nggak harus pakai nama itu、hehehe)karena喜多の意図認証nya pada活動mainmenuジャバ
ダンpadaメインメニュー.ジャバタンバカンバリ
package com.rabuncode.authlog;

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

import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FacebookAuthProvider;
import com.google.firebase.auth.FirebaseUser;

import java.util.Arrays;

public class mainMenu extends MainActivity {

    CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        callbackManager = CallbackManager.Factory.create();

        LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));
        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Toast.makeText(mainMenu.this, "anda berhasil masuk", Toast.LENGTH_SHORT).show();
                        handleFacebookAccessToken(loginResult.getAccessToken());

                    }

                    @Override
                    public void onCancel() {
                        Toast.makeText(mainMenu.this, "anda gagal masuk sementara", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Toast.makeText(mainMenu.this, "anda dipaksa keluar", Toast.LENGTH_SHORT).show();
                    }
                });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // Pass the activity result back to the Facebook SDK
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }

    private void handleFacebookAccessToken(AccessToken token) {


        AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
        mAuth.signInWithCredential(credential)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (task.isSuccessful()) {

                            FirebaseUser user = mAuth.getCurrentUser();
                            updateUI(user);
                        } else {
                            // If sign in fails, display a message to the user.
                            Toast.makeText(mainMenu.this, "" + task.getException(),
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
    }

    private void updateUI(FirebaseUser user) {
        Intent intent = new Intent(mainMenu.this, HomeActivity.class);
        startActivity(intent);
    }
}
カレーナpadaメインメニュー.ジャワNya北Tidak Melakukanイサマンシ・パダLayoutnya、Mka Saya Tidak割当レイアウト、Wokeee.
Dan pada Baris kodeオブジェクトクラスDIファイルmainMenu.ジャワ、Khususnya padaメソッドUpdateui北Melakukan意図Ant Abau Berpindah Halaman Ke活動ヤンの人、Dengan活動Bernama Home活動マカKita Perlu Membuat活動バル、PaadaサントセッラログインLangsung Dialihkan Ke活動Yang - lain.
PADAの活動ジャバ
Saya Tidak melukan codingan apapun,baik pada layout tya maupun padaファイルjava classnyaJadi Sayaティダックmengeshare apapun yah.
セキアンCuman ITU Yang Bisaは、カリIini、Semoga Bermanfaatを共有します.
ワサマム・アラキム