Firebase 正在使用 startActivityForSignInWithProvider 为用户登录的回调提供 AuthResult(在我的情况下,提供者是 Android 平台上的苹果)。我似乎无法以适当的(同步)方式从中获取 idToken 。
到目前为止,我找到了两个选项,都不令人满意:
选项1:铸造
((OAuthCredential)authResult.getCredential()).getIdToken()
这行得通,但我不确定它是否安全。Plis,我在想,如果 Firebase 希望我们以这种方式获取 idToken,他们会将其添加到 AuthCredential 中。
选项2:从用户那里获取
authResult.getUser().getIdToken(false).addOnCompleteListener { ... }
这似乎是一个安全的解决方案,但它是一种异步方法。在用户刚刚手动登录之后执行另一个异步方法似乎没有意义(这是我为现有用户所做的)。