身份验证成功后,Firebase 返回“null”帐户

问题描述 投票:0回答:1

为什么 Firebase 在 Google Play 身份验证成功后返回“null”帐户?

class MyActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        [...]

        val activity = this
        val gso = GoogleSignInOptions
            .Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
            .requestServerAuthCode("<some-id>.apps.googleusercontent.com")
            .build()
        val signInClient = GoogleSignIn.getClient(activity, gso)
        val acc = GoogleSignIn.getLastSignedInAccount(activity) // This is null
        val currentUser = Firebase.auth.currentUser // This is null

        signInClient.silentSignIn().addOnCompleteListener(activity) { task ->
            if (task.isSuccessful) {
                val account = task.result // This is com.google.android.gms.auth.api.signin.GoogleSignInAccount@123456

                account.displayName // This is null
                account.id // This is null
                Firebase.auth.currentUser // Still null
            }
        }
    }
}

根据文档,如果触发“isSuccessful”,用户 ID 永远不应该为“null”:https://firebase.google.com/docs/auth/android/play-games

java android firebase firebase-authentication google-signin
1个回答
0
投票

尝试使用这个:

val user = FirebaseAuth.getInstance().currentUser

而不是:

Firebase.auth.currentUser
© www.soinside.com 2019 - 2024. All rights reserved.