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