如何使用Firebase让Admin模块发送的邀请跳转至User模块?
解决Firebase Admin模块发送邀请跳转至User模块的问题
我之前刚好处理过类似的跨模块邀请跳转场景,给你几个实用的解决方案:
核心原因
首先得明白为什么默认会跳转到Admin模块:Firebase App Invite默认会基于当前运行的App(也就是Admin模块)的包名,自动生成指向该模块Play商店页面的链接。所以要实现跳转User模块,关键是手动指定邀请链接的目标地址。
方案一:使用Firebase Dynamic Links自定义跳转目标
Dynamic Links是App Invite的底层支撑,我们可以直接创建指向User模块的动态链接,替换默认的邀请链接:
在Firebase控制台创建动态链接
- 进入Firebase控制台 → 你的项目 → Dynamic Links → 创建新的动态链接
- 设置目标链接为User模块的Google Play商店地址(格式:
https://play.google.com/store/apps/details?id=com.your.user.package,替换成你实际的User模块包名) - 配置其他参数(比如域名前缀、Android/iOS跳转规则),确保Android端的 fallback 链接指向User模块的商店页面
在Admin模块代码中使用该动态链接发送邀请
调用App Invite的IntentBuilder时,通过setDeepLink()方法传入你刚创建的动态链接:// Kotlin示例 val INVITE_REQUEST_CODE = 1001 val inviteIntent = AppInviteInvitation.IntentBuilder("邀请好友使用用户端App") .setMessage("快来体验我们的用户端应用,功能超实用!") .setDeepLink(Uri.parse("https://your-dynamic-domain.page.link/invite-user")) // 替换成你的动态链接 .setCallToActionText("立即下载") .build() startActivityForResult(inviteIntent, INVITE_REQUEST_CODE)
方案二:直接构建指向User模块的邀请链接(无需控制台配置)
如果不想在控制台手动创建动态链接,也可以在代码里直接构建Dynamic Link,指定目标为User模块:
// Kotlin示例 val dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() // 设置最终跳转的User模块商店链接 .setLink(Uri.parse("https://play.google.com/store/apps/details?id=com.your.user.package")) // 替换成你的Firebase动态链接域名前缀 .setDomainUriPrefix("https://your-dynamic-domain.page.link") // 配置Android端参数,fallback链接确保跳转User模块 .setAndroidParameters(AndroidParameters.Builder("com.your.admin.package") .setFallbackUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.your.user.package")) .build()) .buildDynamicLink() // 使用构建好的动态链接发送邀请 val inviteIntent = AppInviteInvitation.IntentBuilder("邀请好友加入") .setMessage("推荐你使用我们的用户端App,操作简单又便捷!") .setDeepLink(dynamicLink.uri) .build() startActivityForResult(inviteIntent, INVITE_REQUEST_CODE)
注意事项
- 确保User模块的包名和Play商店地址完全匹配,不要写错
- 动态链接的域名前缀需要在Firebase控制台提前配置好
- 如果测试时跳转异常,可以用Firebase的Dynamic Links调试工具检查链接配置是否正确
内容的提问来源于stack exchange,提问作者Harsh Vasoya
相关产品推荐
相关产品推荐

