android - Firebase - 动态链接不适用于 Android 12

标签 android redirect google-cloud-firestore firebase-authentication password-less

我正在使用 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/

相关文章:

android - transformDexArchiveWithExternalLibsDexMergerForDebug

android - 如何将视频录制到内部存储器?

基于同一域内的 HTTP_HOST/SERVER_NAME 的 PHP 重定向

firebase - 一个函数打印该值,但返回时它没有打印在另一个函数上

flutter - 火存储 : multiple where()'s and orderBy()

firebase - 无法从Firebase中的文本字段表单保存数据

android - 如何调整按钮内图像的大小

java - 在 fragment 中播放声音

redirect - nginx HTTPS 重定向

python - 将流量重定向到其他网络服务器