gpt4 book ai didi

android - 为什么 Firebase pendingAuthResult 返回 null?

转载 作者:行者123 更新时间:2023-12-04 16:03:28 25 4
gpt4 key购买 nike

我正在尝试实现 使用 Apple 登录 使用 Firebase 身份验证。我正在关注 firebase/quickstart-android样本。

我的登录 fragment 覆盖 onStart()检查任何待处理的结果:

override fun onStart() {
super.onStart()

val pending = auth.pendingAuthResult

pending?.addOnSuccessListener { authResult ->
Timber.d("Successful login, pending")
}?.addOnFailureListener { e ->
Timber.d("Failed login, pending")
}
}

还有一个启动登录流程的按钮:
btnApple.onClick {
viewModel.appleLogin(requireActivity())
}

viewModel 从存储库中调用以下方法:
// Initiate sign-in flow only if there are no pending results
if (auth.pendingAuthResult != null) {
return
}

val scopes = listOf("email", "name")
val provider = OAuthProvider.newBuilder("apple.com", auth)
.setScopes(scopes)
.build()

auth.startActivityForSignInWithProvider(activity, provider)
.addOnSuccessListener { authResult ->
Timber.d("Successful login, normal")
}
.addOnFailureListener { e ->
Timber.e(e, "Failed login, normal")
}

official manual状态:

Signing in with this method puts your Activity in the background, which means that it can be reclaimed by the system during the sign in flow.



因此,我在完成 Chrome 中的登录流程的同时,通过在 Android Studio 中终止应用程序来开始测试挂起的结果。回到应用程序后, onStart()被调用,但 pendingAuthResult始终为空。

为了让它更有趣,当我重新启动应用程序时,我已登录。然后如果我注销并再次输入登录 fragment ,现在有一个待处理的结果,我收到 Successful login, pending .最重要的是, 未决结果不会消失 .如果我离开登录 fragment 并返回,未决结果仍然存在,我会收到另一个 Successful login, pending .

我什至测试了 firebase/quickstart-android sample 本身,它有完全相同的问题。

这个问题的可能原因是什么?我正在使用 firebase-auth:19.2.0 .

最佳答案

如果您使用 firebase 与苹果签名,并且如果它是手动处理的,那么您应该使用字符串解码机制,请找到相同的 firebase 指南并希望它会起作用。让我知道是否有任何问题!

Firebase guild signing with apple

关于android - 为什么 Firebase pendingAuthResult 返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59718353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com