0

我已经通过 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"))
    }
}

自定义标签 Facebook 登录

4

0 回答 0