【发布时间】:2018-11-01 15:42:10
【问题描述】:
所以,我已经像这样实现了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: 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 播放页面,而在 pc 上它会将我引导至我在创建动态链接时在 firebase consile 中指定的网站
那么调用.buildShortDynamicLink() 有什么问题,我该如何解决?
【问题讨论】:
-
我一直建议使用
"Divide et Impera"方法并尝试使用更少的代码,然后再添加更多代码。因此,仅尝试基本参数以创建像link、domainUriPrefix(使用 https://)这样的短链接,仅此而已。然后添加Android Parameters、iOS parameters,仅在最后添加listeners。此外,错误告诉您 Long Link is not parsable...所以尝试使用简单的https://test然后添加查询字符串参数
标签: android firebase firebase-dynamic-links