我正在为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数据中记录intent数据进行检查,并且我获取了firebase身份验证返回的数据,因此我认为它看起来像动态链接的某种问题。
我的firebase邀请版本是15.0.0,因为15.0.2给了我错误(在文档中更新但我认为实际上没有发布。)
implementation "com.google.firebase:firebase-invites:15.0.0"
编辑2: 使用firebase示例进行无密码登录示例时,也会出现同样的问题。我在GitHub上创建了一个问题
答案 0 :(得分:3)
我和您有同样的问题。 为了解决这个问题,我删除了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>
希望它会有所帮助
答案 1 :(得分:2)
我和你有同样的问题。我已经解决了。 在清单中的 android:host 中,我确实放置了动态链接域!
像https://firebase.google.com/docs/dynamic-links/android/receive中的家伙所说
请注意,必须将android:host设置为您的动态链接域, 而不是您的深层链接的域。
在清单中
<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:host="myDynamicLink.page.link" android:scheme="https" />
</intent-filter>
在我的第二活动中:
ActionCodeSettings actionCodeSettiongs = ActionCodeSettings.newBuilder()
.setAndroidPackageName(getPackageName(), false, null)
.setHandleCodeInApp(true)
.setUrl("https://auth.example.com")
.build();
为我的电子邮件生成的URL如下: “ https://myDynamicLink.page.link/?link=https://myApp.firebaseapp.com...continueUrl%3Dhttps://auth.example.com ...”
P.S。这一切令人困惑,因为他们在其Guid中将链接“ https://example.com”而不是“ http://example.page.link”