android - Firebase 动态链接 : can`t create short link

标签 android firebase firebase-dynamic-links

所以,我已经像这样实现了 FirebaseDynamicLinks:

val link = "https://test/?promo=$uId"
    FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse(link))
            .setDomainUriPrefix("test.page.link")
            .setAndroidParameters(
                    DynamicLink.AndroidParameters.Builder("test")
                            .setMinimumVersion(1)
                            .build())
            .buildShortDynamicLink()
            .addOnSuccessListener { shortDynamicLink ->
                val mInvitationUrl = shortDynamicLink.shortLink.toString()
                log("test1 success $mInvitationUrl")
                //shareIntent(mInvitationUrl)
            }
            .addOnFailureListener {
                log("test1 fail")
                it.printStackTrace()
            }

但是调用 .buildShortDynamicLink() 抛出异常:

W: com.google.android.gms.common.api.ApiException: 400: 长链接不可解析:test.page.link/generatedLongLink [https://firebase.google.com/docs/动态链接/rest#create_a_short_link_from_parameters]

有趣的是:在浏览器中插入 test.page.link/generatedLongLink 可以按预期工作 - 在 Android 上,它会引导我访问 Google Play 页面,而在 PC 上,它会引导我访问我在创建动态链接时的 firebase consile

那么调用 .buildShortDynamicLink() 有什么问题,我该如何解决?

最佳答案

我为你试过这段代码

    val uId = 1234241

    val link = "https://www.test.com/$uId"
    FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse(link))
        .setDomainUriPrefix("https://example.page.link")
        .setAndroidParameters(
            DynamicLink.AndroidParameters.Builder("test")
                .setMinimumVersion(1)
                .build())
        .buildShortDynamicLink()
        .addOnSuccessListener { shortDynamicLink ->
            val mInvitationUrl = shortDynamicLink.shortLink.toString()
            Log.d("AAA","test1 success $mInvitationUrl")
            //shareIntent(mInvitationUrl)
        }
        .addOnFailureListener {
            Log.d("AAA", "test1 fail")
            it.printStackTrace()
        }

并且它工作正常

如果我没有将 “https://” 放在我的动态链接上,我会得到你的错误。

enter image description here

所以改变

.setDomainUriPrefix("test.page.link")

.setDomainUriPrefix("https://test.page.link")

一切都应该正常工作:

enter image description here

关于android - Firebase 动态链接 : can`t create short link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104596/

相关文章:

ios - 如果选择 goo.gl,Firebase Deeplink 不会重定向到应用程序

Firebase动态链接重置密码: not configured for the current project

java - 使用 ViewPager 添加单独的 Fragment 和 Fragment Tabs

android - 水平回收 View 中的 9 补丁背景

php - 如何在 Laravel 中使用 Firebase 实时通知?

authentication - 如何将 Firebase Auth Token 从客户端传递到服务器?

ios - 如何知道主题创建是否为 "submitted"到控制台(Firebase 云消息传递)

android - CardView如何改变阴影颜色和角度?

android - 是否有用于/在 Gingerbread 及以下版本上使用 NotificationBuilder 的兼容性库?

firebase - 当应用程序已经在运行并且使用Firebase动态链接时,导航不起作用