Pes*_*The 8 android kotlin firebase firebase-authentication apple-sign-in
我正在尝试使用 Firebase 身份验证实现使用 Apple 登录。我正在关注firebase/quickstart-android示例。
我的登录片段覆盖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")
}
}
Run Code Online (Sandbox Code Playgroud)
以及启动登录流程的按钮:
btnApple.onClick {
viewModel.appleLogin(requireActivity())
}
Run Code Online (Sandbox Code Playgroud)
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")
}
Run Code Online (Sandbox Code Playgroud)
本官方手册状态:
使用此方法登录会将您的 Activity 置于后台,这意味着它可以在登录流程中被系统回收。
因此,我通过在 Chrome 中完成登录流程的同时在 Android Studio 中终止应用程序来开始测试待处理的结果。一旦我回到应用程序,就会onStart()被调用,但是pendingAuthResult始终为空。
更有趣的是,当我重新启动应用程序时,我已登录。然后如果我注销并再次输入登录片段,现在有一个待处理的结果,我会收到Successful login, pending. 最重要的是,未决结果不会消失。如果我离开登录片段并返回,待处理的结果仍然存在并且我会收到另一个Successful login, pending.
我什至测试了firebase/quickstart-android示例本身,它有完全相同的问题。
导致此问题的可能原因是什么?我正在使用firebase-auth:19.2.0.
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |