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

如何用FirebaseAppInvite.getInvitation替换已废弃的AppInviteApi.getInvitation?

替换废弃的AppInviteApi.getInvitation()为FirebaseAppInvite方案

刚升级Google Play服务后遇到这个弃用警告很正常,因为官方已经把App Invites的功能完全整合到Firebase Dynamic Links里了,下面我给你一步步讲清楚怎么替换:

核心思路

原来的AppInviteApi.getInvitation()是通过GoogleApiClient来获取邀请数据,现在官方要求通过Firebase Dynamic Links的PendingDynamicLinkData作为入口,再用FirebaseAppInvite.getInvitation()从中提取App Invite相关的信息。

具体替换步骤

1. 确保依赖正确

首先检查你的build.gradle(Module级别),确保已经引入Firebase Dynamic Links的依赖(替换成当前最新版本即可):

implementation 'com.google.firebase:firebase-dynamic-links:21.2.0'

2. 替换旧代码

旧的废弃代码(基于GoogleApiClient):

// 旧代码,已废弃
AppInviteApi.getInvitation(mGoogleApiClient, this, true)
    .setResultCallback(new ResultCallback<AppInviteInvitationResult>() {
        @Override
        public void onResult(@NonNull AppInviteInvitationResult result) {
            if (result.getStatus().isSuccess()) {
                Intent intent = result.getInvitationIntent();
                String deepLink = AppInviteReferral.getDeepLink(intent);
                // 处理深链接或邀请逻辑
            }
        }
    });

新的替代代码(基于Firebase):

FirebaseDynamicLinks.getInstance()
    .getDynamicLink(getIntent())
    .addOnSuccessListener(this, pendingDynamicLinkData -> {
        // 从动态链接数据中提取App Invite信息
        FirebaseAppInvite appInvite = FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
        
        if (appInvite != null) {
            // 获取邀请ID,可用于统计等场景
            String invitationId = appInvite.getInvitationId();
            // 获取邀请附带的深链接
            Uri deepLink = appInvite.getDeepLink();
            
            // 这里写你的业务逻辑,比如跳转对应页面、处理邀请来源等
            if (deepLink != null) {
                // 处理深链接,比如打开指定页面
                navigateToDeepLinkDestination(deepLink);
            }
        }
    })
    .addOnFailureListener(this, e -> {
        Log.w("AppInvite", "获取动态链接失败", e);
    });

3. 关键说明

  • FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent())会自动处理App Invite的链接数据,不管是通过邀请链接打开App还是直接启动App,都能正确捕获动态链接信息
  • FirebaseAppInvite.getInvitation()是专门用来从动态链接中解析App Invite数据的工具方法,返回的对象包含了原AppInviteApi能获取的所有核心字段(邀请ID、深链接等)
  • 如果你的App之前已经配置过App Invites的Manifest信息,大部分不需要修改,但建议检查下Dynamic Links的Intent Filter配置(确保能正确接收链接跳转)

这样替换后,不仅解决了弃用警告,还能享受Firebase Dynamic Links带来的更多功能(比如跨平台支持、链接追踪等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:03:29