Firebase UI(使用电子邮件链接进行身份验证)

在上一节中, 我们学习了如何使用Firebase UI库提供电子邮件, 电话和Google身份验证。同样, 我们将学习如何使用Firebase UI库提供电子邮件链接/无密码身份验证。
因此, 让我们看一下逐步过程, 以了解如何使用电子邮件链接/不使用密码来执行身份验证。这些步骤如下:
步骤1:
第一步, 我们将创建一个新项目, 并使用手动或Google Assistance中的任何方法将Firebase添加到其中。要将Firebase连接到项目, 请通过以下链接:https://www.srcmini.com/adding-firebase-to-app。
第2步:
将Firebase连接到我们的应用程序并应用插件后, 我们必须在Firebase控制台中启用电子邮件链接身份验证。

Firebase UI(使用电子邮件链接进行身份验证)

文章图片
第三步:
在下一步中, 我们将为电子邮件链接启用动态链接。为此, 我们需要添加一个链接。因此, 只需单击“开始”。
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
单击入门后, 将显示一个新的弹出框。添加URL前缀, 并确保以前未使用过页面链接。
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
单击完成后, 将成功创建动态链接
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
步骤4:
接下来需要做的是, 将域添加到身份验证中。
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
该域将与我们的代码匹配, 我们将在Firebase控制台中添加该代码。
步骤5:
为了能够捕获链接, 我们需要做的最后一件事是设置SHA-1和SHA-256。要了解如何找到这些密钥, 请单击此处。我们将转到项目的设置, 然后单击添加指纹。这将用于添加SHA-1和SHA-256。
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
步骤6:
在下一步中, 我们将转到Android Studio, 并创建用于登录的活动, 即, 一个按钮的活动。
步骤7:
我们将创建一个用于记录的标签。在事件处理程序内部, 我们将设置操作代码设置对象。这是密码列表登录和电子邮件的主要逻辑。
ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder().setAndroidPackageName(getPackageName(), true, /* install if not available? */null/* minimum app version */).setHandleCodeInApp(true).setUrl("https://fire.example.com/emailSignInLink").build();

步骤8:
现在, 我们将处理回调。我们使用启动活动通过以下方式解决它:
startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().setAvailableProviders(Arrays.asList(newAuthUI.IdpConfig.EmailBuilder().enableEmailLinkSignIn().setActionCodeSettings(actionCodeSettings).build())).build(), 1234);

步骤9:
下一步, 我们将像以前使用的那样创建onActivityResult():
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data); if (requestCode == 12345) {if (resultCode == RESULT_OK) {// Successfully signed inFirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); Toast.makeText(getApplicationContext(), "Successfully signed in!", Toast.LENGTH_SHORT).show(); } 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.// ...Toast.makeText(getApplicationContext(), "Sign in FAILED", Toast.LENGTH_SHORT).show(); }}}

步骤10:
我们要做的最后一件事是捕获动态链接。我们将在onCreate()函数中捕获动态链接。
if (AuthUI.canHandleIntent(getIntent())) {String link = getIntent().getData().toString(); List< AuthUI.IdpConfig> providers = Arrays.asList(new AuthUI.IdpConfig.EmailBuilder().build()); Log.d(TAG, "got an email link: " + link); if (link != null) {startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().setEmailLink(link).setAvailableProviders(providers).build(), 12345); }}

【Firebase UI(使用电子邮件链接进行身份验证)】现在一切都设置好了, 该运行我们的应用程序了。当我们运行该应用程序时, 它将显示以下输出:
Firebase UI(使用电子邮件链接进行身份验证)

文章图片
Firebase UI(使用电子邮件链接进行身份验证)

文章图片

    推荐阅读