我在设置 Firebase 动态链接和 Firebase 身份验证验证/密码重置时患有脑动脉瘤。
一旦用户收到用于帐户验证或密码重置的 firebase 动态链接,格式如下:
https://XXX.page.link?link=https://XXX.firebaseapp.com/__/auth/action?apiKey%...
在 Android Manifest 中我确实放了
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="XXX.page.link" android:scheme="https"/>
</intent-filter>
</activity>
Firebase 为该应用程序提供了正确的 SHA-1/256 密钥 + 这是链接的生成方式:
await FirebaseAuth.instance.sendPasswordResetEmail(
email: event.email,
actionCodeSettings: ActionCodeSettings(
handleCodeInApp: true,
dynamicLinkDomain: "XXX.page.link",
iOSBundleId: "com.YYY.XXX",
androidPackageName: "com.YYY.XXX",
url: 'https://XXX.app/password-reset/${event.email}',
));
然而,每次收到动态链接时,它都会打开 Web 浏览器而不是应用程序。
我也使用
adb shell am start -W -a android.intent.action.VIEW -d "https://XXX.page.link?link=https://XXX.firebaseapp.com/__/auth/...
测试过它,但它仍然在 Web 浏览器中打开。
有什么想法吗?我可能遗漏了一些明显的东西。
--编辑
adb shell pm get-app-links --user cur com.YYY.XXX
returns:
User 0:
Verification link handling allowed: true
Selection state:
Disabled:
XXX.page.link
--编辑#2
好的,我想我已经弄清楚了——我需要在应用程序设置中手动启用它(为什么?)。有没有办法为用户自动启用它?