android - 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
编辑1:
我通过在启动器活动的 onResume 数据中记录意图数据进行了检查,并且我得到了 firebase 身份验证返回的数据,因此我认为动态链接似乎存在某种问题。
我的 firebase 邀请版本是 15.0.0,因为 15.0.2 给了我错误(在文档中更新但我认为实际上并未发布。)
implementation "com.google.firebase:firebase-invites:15.0.0"
编辑 2: 使用 firebase 示例进行无密码登录示例时也存在相同的问题。我在 GitHub 上创建了一个问题
解决方案
我只是和你有同样的问题。为了解决这个问题,我删除了 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>
希望它会有所帮助
推荐阅读
- sql - 如何使用 Azure SQL 格式化文本数据
- php - 如何在 laravel 5.6 中使用 hasMany 对所有记录进行分页和显示?
- computational-geometry - 一条不平行的线
- sapui5 - SAP UI5 应用程序 - 滚动条问题
- javascript - 如何根据元素索引在模态上显示 img?
- javascript - 在 css 中将位置设置为绝对和顶部为 0 导致 javascript classList.toggle() 不起作用
- python - 如何在 Python Tkinter 上删除画布?
- javascript - 如何在 postcss.config.js 中为不同的 Webpack 入口点配置不同的 customProperties?
- react-native - 在 React Native 中,如何在每次设置状态时 console.log() ?
- java - True 通过字节生成器生成整数的随机数 (BlueRand)