Firebase 动态链接:无法创建短链接

Mon*_*a S 4 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()
            }
Run Code Online (Sandbox Code Playgroud)

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

W: com.google.android.gms.common.api.ApiException: 400: Long link is not parsable: test.page.link/generatedLongLink [https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters]

有趣的是:插入 test.page.link/generatedLongLink在浏览器中按预期工作 - 在 android 上它会在 google play 页面上引导我,在 pc 上它会在我创建动态链接时在 firebase consile 中指定的网站上引导我

那么打电话有什么问题, .buildShortDynamicLink()我该如何解决呢?

sha*_*eep 10

我为你试过这个代码

    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()
        }
Run Code Online (Sandbox Code Playgroud)

它工作正常

相反,如果我没有在动态链接上添加“https://”,我会收到您的错误信息。

在此处输入图片说明

所以改变

.setDomainUriPrefix("test.page.link")
Run Code Online (Sandbox Code Playgroud)

.setDomainUriPrefix("https://test.page.link")
Run Code Online (Sandbox Code Playgroud)

一切都应该正常工作:

在此处输入图片说明