首页 > 解决方案 > Firebase Android:电子邮件链接身份验证。意图过滤器不起作用

问题描述

我正在为 Android 实施 firebase 电子邮件链接身份验证机制。我已经使用firebase的指南实现了它。但是现在从电子邮件打开链接后,应用程序总是会进入启动器活动。我无法调试该问题。我还在我的应用程序中实现了动态链接,并且效果很好。这是我的意图过滤器:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />

    <data android:scheme="http" />
    <data android:scheme="https" />
    <data android:host="www.example.com" />
    <data android:pathPrefix="/emailSignInLink" />

</intent-filter>

这是我正在使用的 ActionCodeSetting:

ActionCodeSettings settings = ActionCodeSettings.newBuilder()
                .setAndroidPackageName(
                        BuildConfig.APPLICATION_ID,
                        false, /* install if not available? */
                        null   /* minimum app version */)
                .setHandleCodeInApp(true)
                .setUrl("https://www.example.com/emailSignInLink")
                .build();

谁能弄清楚我在这里做错了什么或错过了什么

来自firebase的样本:

https://github.com/firebase/quickstart-android/blob/master/auth/app/src/main/AndroidManifest.xml

https://github.com/firebase/quickstart-android/blob/master/auth/app/src/main/java/com/google/firebase/quickstart/auth/PasswordlessActivity.java

编辑1:

我通过在启动器活动的 onResume 数据中记录意图数据进行了检查,并且我得到了 firebase 身份验证返回的数据,因此我认为动态链接似乎存在某种问题。

我的 firebase 邀请版本是 15.0.0,因为 15.0.2 给了我错误(在文档中更新但我认为实际上并未发布。)

implementation "com.google.firebase:firebase-invites:15.0.0"

编辑 2: 使用 firebase 示例进行无密码登录示例时也存在相同的问题。我在 GitHub 上创建了一个问题

https://github.com/firebase/quickstart-android/issues/488

标签: androidfirebasefirebase-authentication

解决方案


我只是和你有同样的问题。为了解决这个问题,我删除了 pathPrefix 并设置了我的域的 url,而不是意图过滤器中的动态链接,它似乎可以工作。

 <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <data
           android:scheme="https"
           android:host="myfirebaseId.firebaseapp.com"/>
      <category android:name="android.intent.category.BROWSABLE" />
      <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

希望它会有所帮助


推荐阅读