Firebase Facebook login via mobile browser redirects/closes after 3 times pressing back button in Android

197 Views Asked by At

I have implemented a Facebook login via firebase. On clicking the login button facebook opens the mobile browser in custom tabs. When I click the back or close button the redirection happens only after 3 times. The Facebook login page reloads 3 times and only then the page is getting closed.

Please find the code below,

import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.util.Log
import com.example.ondemand.R
import com.facebook.CallbackManager
import com.facebook.FacebookCallback
import com.facebook.FacebookException
import com.facebook.login.LoginManager
import com.facebook.login.LoginResult
import com.facebook.login.widget.LoginButton

class FirebaseFaceBookSignInActivity : Activity() {
    private var mCallbackManager: CallbackManager? = null
    private val TAG = "FacebookLogin"
    private var fbLoginButton: LoginButton? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)

        fbLoginButton = findViewById<LoginButton>(R.id.linearFBSignIn)

        mCallbackManager = CallbackManager.Factory.create()
        LoginManager.getInstance()
            .registerCallback(mCallbackManager, object : FacebookCallback<LoginResult> {
                override fun onSuccess(loginResult: LoginResult) {
                    Log.d(TAG, "facebook:onSuccess:$loginResult")
                }

                override fun onCancel() {
                    Log.d(TAG, "facebook:onCancel")
                }

                override fun onError(error: FacebookException) {
                    Log.d(TAG, "facebook:onError", error)
                }
            })

        fbLoginButton?.setOnClickListener {
            fbLogin()
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        mCallbackManager?.onActivityResult(requestCode, resultCode, data)
    }

    private fun fbLogin() {
        LoginManager.getInstance().logInWithReadPermissions(
            this,
            listOf("user_photos", "email", "public_profile", "user_posts")
        )
        LoginManager.getInstance()
            .logInWithPublishPermissions(this, listOf("publish_actions"))
    }
}

custom tab facebook login

0

There are 0 best solutions below