无法从短动态链接中检索数据 - Firebase
Posted
技术标签:
【中文标题】无法从短动态链接中检索数据 - Firebase【英文标题】:Not able to retrieve datas from Short dynamic link - Firebase 【发布时间】:2018-05-20 18:56:47 【问题描述】:当我创建包含 UTM 参数的动态链接并共享它时,我能够从链接中检索数据和编码查询。但是,当我尝试使用 firebase 推荐的方法创建动态链接的短链接时,我只能检索路径,而不能检索编码查询。如何解决?
创建动态链接的方法:
public void buildReferral()
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLink(Uri.parse("sample link"))
.setDynamicLinkDomain("sample domain")
.setandroidParameters(
new DynamicLink.AndroidParameters.Builder("com.package.my")
.build())
.setGoogleAnalyticsParameters(
new DynamicLink.GoogleAnalyticsParameters.Builder()
.setSource("referral")
.setContent("content")
.setMedium("Android")
.build())
.buildDynamicLink();
buildShortUrl(dynamicLink);
创建短链接的方法:
public void buildShortUrl(DynamicLink dynamicLink)
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(Uri.parse(dynamicLink.getUri().toString()))
.buildShortDynamicLink()
.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>()
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task)
if (task.isSuccessful())
// Short link created
Uri shortLink = task.getResult().getShortLink();
Uri flowchartLink = task.getResult().getPreviewLink();
else
// Error
// ...
);
【问题讨论】:
您如何分享缩短的链接?将其传递给AppInviteInvitation.IntentBuilder().setDeepLink()
?
Intent intent = new AppInviteInvitation.IntentBuilder("Share via") .setMessage(getString(R.string.referral_text)) .setDeepLink(shortLinkUri) .setCallToActionText("Install") .build(); startActivityForResult(意图,100);这就是短链接的共享方式。 @BobSnyder
我的经验是 AppInvite 会缩短您传递给 setDeepLink()
的链接。我认为在传递给setDeepLink()
之前缩短它没有任何价值。我可以发送带有参数的长链接,查看收到的短链接,并从收到的动态链接数据中的 URI 中提取参数。
我无法使用 firebase 邀请通过 WhatsApp 邀请用户。因此我想缩短链接并通过 Intent 通常将其分享给 WhatsApp。有没有办法使用 firebase 分享到 WhatsApp 的链接?
我不知道 WhatsApp。我猜你可以在做的时候缩短链接并将其嵌入到短信中。在我的应用中,如果用户想使用 Firebase 邀请发送动态链接,我会发送长链接。或者用户可以使用短信或电子邮件分享链接。对于这些情况,我会像您一样缩短链接。
【参考方案1】:
您可以使用appendQueryParameter()
向链接添加多个参数,使用getQueryParameter()
可以从链接中检索参数。可以看this回答如何实现。
【讨论】:
感谢您的回答,但我想获取此处传递的参数,而不是我使用 appendQuery() 传递的参数 - .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("referral") .setContent("content") .setMedium("Android") .build())以上是关于无法从短动态链接中检索数据 - Firebase的主要内容,如果未能解决你的问题,请参考以下文章
从 Firebase 动态链接中检索 UTMParameters