You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android下Firebase无密码认证Magic Link无法唤起应用求助

Firebase无密码认证Magic Link无法唤起Android应用的排查方案

核心问题

Firebase无密码认证的Magic Link点击后仅在Chrome打开指定URL,无法唤起目标Android应用,已部署.well-known/assetlinks.json但问题未解决。

排查与修复步骤

1. 验证Asset Links文件有效性

  • 确保assetlinks.json中的SHA-256指纹与应用签名完全匹配(区分debug/release环境)
  • 用Android Studio的App Links Assistant工具(Tools > App Links Assistant)验证文件配置,排查格式错误或指纹不匹配问题
  • 确认文件部署在https://es0329.com/.well-known/assetlinks.json,且能通过HTTPS直接访问(无跳转)

2. 修正Manifest的Intent Filter配置

当前intent-filter缺少App Links自动验证的关键属性android:autoVerify="true",修改后如下:

<!-- AndroidManifest.xml -->
<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:host="es0329.com" android:scheme="https" />
</intent-filter>

当前deepLinkBaseUrl末尾带斜杠,与路由拼接会生成重复斜杠(https://es0329.com//feed),导致URI不匹配:

// Screens.kt
companion object {
  const val deepLinkBaseUrl = "https://es0329.com" // 去掉末尾斜杠
}

同时调整actionCodeSettings中的URL拼接逻辑,确保生成正确的https://es0329.com/feed

4. 确认Firebase Action Code配置

检查setAndroidPackageName参数的正确性,直接传入布尔值避免常量定义错误:

// AuthStore.kt
actionCodeSettings {
  url = "${Screens.deepLinkBaseUrl}/feed"
  handleCodeInApp = true
  setAndroidPackageName(
    BuildConfig.APPLICATION_ID,
    true, // 对应INSTALL_IF_NOT_AVAILABLE
    BuildConfig.VERSION_NAME
  )
}

5. 测试链接触发逻辑

  • 用adb命令直接测试Deep Link:adb shell am start -W -a android.intent.action.VIEW -d "https://es0329.com/feed",验证是否能唤起应用
  • 清除Chrome缓存,避免浏览器保留旧的链接处理规则
  • 确保测试设备为Android 6.0(API 23)及以上版本,App Links仅在该版本后生效

内容的提问来源于stack exchange,提问作者es0329

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:59:13