我正在使用 Android 和 Firebase 向用户的电子邮件地址发送身份验证链接。 Android 9、10 和 11(无论是发布版本还是调试版本)一切都按预期运行。但是,当在运行 Android 12 的设备上点击身份验证链接时,浏览器(我尝试过多个浏览器)会重定向到错误页面“无效的动态链接,请求的 URL 必须是可解析且完整的 DynamicLink 等...”,而相同的链接适用于其他设备。我错过了什么?
代码如下:
ActionCodeSettings actionCodeSettings =
ActionCodeSettings.newBuilder()
.setUrl("https://appName.page.link")
.setHandleCodeInApp(true)
.setIOSBundleId("com.appName.ios")
.setAndroidPackageName(
"com.appName.android",
false,
getResources().getString(R.string.min_version_android))
.build();
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.sendSignInLinkToEmail(emailAddress, actionCodeSettings).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
Intent intent = new Intent(SignIn.this, CheckSignInInbox.class);
startActivity(intent);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
String msg = getTimestamp() + "Error in sendSignInLinkToEmail: " + e.getMessage();
logErrorAndFirebaseCrash(SignIn.this, msg);
}
});
最佳答案
我找到了问题的原因。
在 list 中,为了使其也适用于 Android 12,我必须在我的 Intent 过滤器中包含 android:autoVerify="true"
,如下所示:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<data
android:host="domainname.page.link"
android:scheme="https" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
关于android - Firebase - 动态链接不适用于 Android 12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73687138/