如何在Firebase电子邮件验证中使用操作代码设置

时间:2018-09-15 14:06:22

标签: android firebase-authentication email-verification

我的Firebase验证电子邮件可以正常工作。但是,一旦我尝试添加actionCodeSettings,它们就不会添加。鉴于我不知道实际应该将其设置为什么,因此问题可能是我设置的网址。

我要实现的目标是,在安装了该应用程序的Android设备上单击链接时,它会将用户反弹回该应用程序。

如果在其他任何地方单击,则除了通常的消息指出帐户已被验证外,无需执行其他任何操作。

我应该如何使用actionCodeSettings来获得这种行为?

                        String url = "com.app/verify?uid=" + user.getUid();
                        ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder()
                                .setUrl(url)
                                .setAndroidPackageName("com.app", false, null)
                                .build();



                        user.sendEmailVerification(actionCodeSettings) 
                                .addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {
                                        if (task.isSuccessful()) {
                                            Log.d(TAG, "Email sent.");
                                            Toast.makeText(MainActivity.this, "Registration successful. Please verify your account by clicking on the link sent to your email address.",
                                                    Toast.LENGTH_LONG).show();
                                        }else {

                                            Log.d(TAG, "Email not sent");
                                            Toast.makeText(MainActivity.this, "Registration successful. However, verification email could not be send.",
                                                    Toast.LENGTH_LONG).show();
                                        }
                                    }
                                });

1 个答案:

答案 0 :(得分:0)

您应该使用实际的URL代替com.app/verify?uid。您可以为此使用Firebase托管。应该已经为您的项目配置了它。如果用户在另一台无法使用移动应用程序的设备上打开应用程序,则将其用作备用URL。另外,您还需要在canHandleCodeInApp中将ActionCodeSettings设置为true,因此,当用户单击链接时,它将直接在您的移动应用程序中打开,而不是通过以下方式处理项目的默认网页Firebase Auth规定中的链接:单击继续按钮返回到您的应用。