繁体   English   中英

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

[英]Firebase - Dynamic Link not working with Android 12

我正在使用 Android 和 Firebase 向用户的 email 地址发送身份验证链接。 Android 9、10 和 11(包括发布版和调试版)一切正常。 但是,当在运行 Android 12 的设备上点击身份验证链接时,浏览器(我尝试了几个浏览器)重定向到错误页面“无效的动态链接,请求的 URL 必须是可解析且完整的动态链接等......”,而相同的链接适用于其他设备。 我错过了什么?

这是代码:

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);
        }
    });

我找到了问题的原因。 在清单中,为了使其也可以与 Android 12 一起使用,我必须在我的意图过滤器中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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM