android - Firebase 身份验证中此代码的目的是什么?
问题描述
我查看了 FirebaseUI 登录方法。在说明的第一页有一个“使用预构建的 UI 登录”,如下所示:使用 FirebaseUI 轻松添加登录到您的 Android 应用程序。该页面包含以下代码:
// 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
那么我什么时候需要使用这个代码,什么时候不需要呢?这部分的目的是什么?
解决方案
实现 Firebase 身份验证的主要方法有两种:
- 使用所谓的无头 API 并在此基础上构建您自己的 API 和流程。
- 使用 FirebaseUI,它是一个 UI 库,(在本例中)封装了 Firebase 身份验证登录流程。正如您在其开源实现中看到的那样,它在后台调用 Firebase 身份验证 API 。
您展示的第一个片段配置 FirebaseUI,具体说明启用了哪些提供程序(Google、Facebook、电子邮件+密码、电话、Twitter),然后启动一个活动以启动流程。
第二个片段直接使用 Firebase 身份验证 API 来实现部分身份验证流程。
如果您使用的是 FirebaseUI,请按照文档在其 repo中配置电话号码身份验证。据我所见,这不需要onActivityResult
您共享。该流程很可能已经封装在 FirebaseUI 本身中。
推荐阅读
- python - 实现 luigi 动态图配置
- arrays - 如何在 JSON 数组中使用 IndexOf?它正在返回-1
- django - Django静态文件得到404
- c# - 如何在 C# 中使用 AWSSDKCore.dll 和 AWSSDKLex.dll 获取有关服务器下所有 LexChatBot 的信息
- javascript - 使用 Javascript 和 C# 连接服务器和客户端
- c++ - 构造不同类型的 C++ 向量数组
- javascript - dc 传单 - 动态标记
- sql-server - Check_mk_agent 错误:未能收集 SQL Server 实例
- android - 降低 ble for android 的 Tx 功率
- visual-studio - 项目xamarin中不存在目标“CssG”