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

Firebase动态链接无法接收多个查询参数的问题咨询

解决Firebase DeepLink多查询参数获取问题

你遇到的问题核心出在两个关键地方:深层链接的参数格式错误,以及没有同时获取并传递两个参数给joinMeeting方法,下面一步步帮你修正:

1. 修复深层链接的参数格式

首先看你的字符串资源里的链接模板:

<string name="app_deep_link_url">https://example.in/?meetingCode=%1$s?meetingToken=%2$s</string>

这里的问题是用了第二个?来分隔第二个参数,而URL中多查询参数的正确分隔符是&,所以要改成:

<string name="app_deep_link_url">https://example.in/?meetingCode=%1$s&meetingToken=%2$s</string>

之前的错误格式会导致meetingToken被解析成meetingCode参数值的一部分(比如myuser?meetingToken=rtgdhh...),自然无法正确获取到meetingToken参数。

2. 修正动态链接的参数获取逻辑

你的handleDynamicLink方法里只获取了meetingCode并调用joinMeeting,但joinMeeting需要两个参数,所以要同时获取两个参数,并且确保都存在的时候再调用方法:

private fun handleDynamicLink() {
    Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener { pendingDynamicLinkData ->
            pendingDynamicLinkData?.link?.let { deepLink ->
                val meetingCode = deepLink.getQueryParameter("meetingCode")
                val meetingToken = deepLink.getQueryParameter("meetingToken")
                
                // 确保两个参数都不为空再调用方法
                if (!meetingCode.isNullOrEmpty() && !meetingToken.isNullOrEmpty()) {
                    joinMeeting(meetingCode, meetingToken)
                } else {
                    // 处理参数缺失的情况,比如提示用户链接无效
                    toast(getString(R.string.main_invalid_deep_link))
                }
            } ?: run {
                toast(getString(R.string.main_error_fetch_dynamic_link))
            }
        }
        .addOnFailureListener { _ ->
            toast(getString(R.string.main_error_fetch_dynamic_link))
        }
}

这里的改动细节:

  • 同时获取meetingCode和meetingToken两个参数
  • 添加参数非空校验,避免因为参数缺失导致的方法调用错误
  • 优化了空值处理逻辑,代码更简洁易读

3. 可选:添加参数缺失的提示资源

建议在strings.xml里补充一个链接无效的提示文本:

<string name="main_invalid_deep_link">无效的会议链接,请检查后重试</string>

验证修改效果

修改完成后,生成的深层链接格式会变成正确的:
https://example.in/?meetingCode=myuser&meetingToken=rtgdhh.tywufgsioqpp
此时deepLink.getQueryParameter("meetingToken")就能正确拿到参数值,调用joinMeeting(meetingCode, meetingToken)也不会再出现参数缺失的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:38:15