Android Firebase动态链接:无法创建短链接
因此,我实现了Android Firebase动态链接:无法创建短链接,android,firebase,firebase-dynamic-links,Android,Firebase,Firebase Dynamic Links,因此,我实现了FirebaseDynamicLinks如下: val link = "https://test/?promo=$uId" FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse(link)) .setDomainUriPrefix("test.page.link") .setAndroidParameters(
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/dynamic-links/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")
与
所有这些都应该运作良好:
正如我一直建议的那样,使用
的“Divide et Impera”
方法,尝试使用更少的代码,然后再添加更多。因此,只需尝试基本参数即可创建短链接,如链接
,域名前缀
(带https://),等等。然后添加Android参数
,iOS参数
,只在最后添加监听器
。此外,错误告诉您长链接是不可解析的。。。因此,请尝试使用一个简单的https://test
然后为我添加查询字符串paramsWorked!!谢谢
.setDomainUriPrefix("https://test.page.link")