无法从短动态链接中检索数据 - 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 缩短的动态链接网址检索动态链接

从 Firebase 动态链接中检索 UTMParameters

Firebase 动态链接无法直接打开应用

我无法从 Firestore Flutter 检索和查看数据

Firebase 动态链接链接统计

Android 动态链接无法在全新应用安装后继续存在