📅  最后修改于: 2021-01-02 03:31:17             🧑  作者: Mango
在上一节中,我们学习了如何使用Firebase UI库提供电子邮件,电话和Google身份验证。同样,我们将学习如何使用Firebase UI库提供电子邮件链接/无密码身份验证。
因此,让我们看一下逐步过程,以了解如何使用电子邮件链接/不使用密码来执行身份验证。这些步骤如下:
第1步:
第一步,我们将创建一个新项目,并使用手动或Google Assistance中的任何方法将Firebase添加到其中。要将Firebase连接到项目,请通过以下链接: https://www.javatpoint.com/adding-firebase-to-app。
第2步:
将Firebase连接到我们的应用程序并应用插件后,我们必须在Firebase控制台中启用电子邮件链接身份验证。
第三步:
在下一步中,我们将为电子邮件链接启用动态链接。为此,我们需要添加一个链接。因此,只需单击“开始”。
单击入门后,将显示一个新的弹出框。添加URL前缀,并确保以前未使用过页面链接。
单击完成后,将成功创建动态链接
步骤4:
接下来需要做的是,将域添加到身份验证中。
该域将与我们的代码匹配,我们将在Firebase控制台中添加该代码。
步骤5:
为了能够捕获链接,我们需要做的最后一件事是设置SHA-1和SHA-256。要了解如何找到这些密钥,请单击此处。我们将转到项目的设置,然后单击添加指纹。这将用于添加SHA-1和SHA-256。
步骤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(new AuthUI.IdpConfig.EmailBuilder().enableEmailLinkSignIn().
setActionCodeSettings(actionCodeSettings).build())).build(), 1234);
步骤9:
在下一步中,我们将像以前使用的那样创建onActivityResult():
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12345) {
if (resultCode == RESULT_OK) {
// Successfully signed in
FirebaseUser 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 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);
}
}
现在一切都设置好了,该运行我们的应用程序了。当我们运行该应用程序时,它将显示以下输出: