android - 如何同时处理 Firebase DynamicLink 和普通的 DeepLink?

标签 android firebase firebase-dynamic-links deeplink

我对 google docs 感到困惑,因为它同时处理普通的深度链接和 firebase 动态链接。

为了处理普通的深度链接,我有这个:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();

    parseDeepLink(data);
}

要添加对 firebase 动态链接(和 firebase 应用程序邀请)的支持,文档建议使用这个:

FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
    @Override
    public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
        if (pendingDynamicLinkData != null) {
            Uri deepLink = pendingDynamicLinkData.getLink();

            // Extract invite
            FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
            if (invite != null) {
                String invitationId = invite.getInvitationId();

                // handle invite
            }

            parseDeepLink(deepLink);
        }
    }
})
.addOnFailureListener(this, new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        finish();
    }
});

但是,使用上面更新的代码,我无法接收普通的 deepLinks,因为 pendingDynamicLinkData 对于普通的 deepLinks 总是 null。我应该在 onFailure() 方法中使用 parseDeepLink(getIntent().getData()) 吗?

处理普通 DeepLink 和 Firebase 动态链接的正确方法是什么?

最佳答案

对于非动态链接你应该使用

Uri data = intent.getData();

和以前一样。您可以在成功回调中检查,例如

if (pendingDynamicLinkData != null) {
        Uri deepLink = pendingDynamicLinkData.getLink();

        // Extract invite
        FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
        if (invite != null) {
            String invitationId = invite.getInvitationId();

            // handle invite
        }

        parseDeepLink(deepLink);
    } else {
        Uri data = intent.getData();
        parseDeepLink(data);
    }

关于android - 如何同时处理 Firebase DynamicLink 和普通的 DeepLink?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45570125/

相关文章:

android - 为什么 Material 设计中 Activity 图标和非 Activity 图标的透明度不同?

java - 将字符串转换为资源Uri,用于mp3播放

android - android中的访问点名称操作

ios - Swift Firebase - 通过观察引用获得所有评分总和的最有效方法?

javascript - 在 Firebase 和 Javascript 中构建私有(private)聊天

firebase - 如何编辑 Firebase DynamicLinks 404(未找到动态链接)页面?

android - 数组适配器在后台异常中修改

javascript - 控制台中的 Firebase 无效 api key 错误

android - 如何使用 Firebase 通知打开动态链接?

firebase - Firebase 动态链接是否有使用配额?