我查看了FirebaseUI登录方法。在说明的第一页上,有一个“使用预构建的UI登录”,如下所示:Easily add sign-in to your Android app with FirebaseUI。该页面包含以下代码:
// Choose authentication providers
List<AuthUI.IdpConfig> providers = Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.PhoneBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.FacebookBuilder().build(),
new AuthUI.IdpConfig.TwitterBuilder().build());
// Create and launch sign-in intent
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN);
然后
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
IdpResponse response = IdpResponse.fromResultIntent(data);
if (resultCode == RESULT_OK) {
// Successfully signed in
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
// ...
} else {
// Sign in failed. If response is null the user canceled the
// sign-in flow using the back button. Otherwise check
// response.getError().getErrorCode() and handle the error.
// ...
}
}
}
但是,当我看他们如何通过SMS通过电话进行身份验证的示例时,找不到该代码,但是验证仍然有效。 电话验证代码可以在其代码段中看到: PhoneAuthActivity.java
那么我什么时候需要使用此代码,什么时候不需要?这部分的目的是什么?
答案 0 :(得分:2)
实现Firebase身份验证的主要方法有两种:
您显示的第一个代码段配置了FirebaseUI,具体说明了启用了哪些提供程序(Google,Facebook,Email + Password,电话,Twitter),然后启动了一项活动以启动流程。
第二个片段直接使用Firebase身份验证API来实现部分身份验证流程。
如果您使用的是FirebaseUI,请遵循其仓库中的documentation for configuring phone number auth。据我所见,这不需要您共享的onActivityResult
。很有可能该流已经封装在FirebaseUI本身中。