我已经通过 firebase 实现了 Facebook 登录。单击登录按钮 facebook 在自定义选项卡中打开移动浏览器。当我单击后退或关闭按钮时,重定向仅在 3 次后发生。Facebook 登录页面重新加载 3 次,然后页面才会关闭。
请在下面找到代码,
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"))
}
}
