所以,我已经像这样实现了 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://” 放在我的动态链接上,我会得到你的错误。
所以改变
.setDomainUriPrefix("test.page.link")
与
.setDomainUriPrefix("https://test.page.link")
一切都应该正常工作:
关于android - Firebase 动态链接 : can`t create short link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53104596/