2

我无法使用Android Firebase邀请SDK创建ShortDynamicLink。我可以创建很长的DynamicLink,但仍然无法创建ShortDynamic链接,并始终给出错误消息Bad Request。下面是代码:Firebase Dynamic Link ShortUrl未在Android中使用

private void sendInvite(String uid, final String displayName){ 

     String link = "https://appdomain.com/?invitedby=" + uid; 



     com.google.android.gms.tasks.Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() 
       .setLink(Uri.parse(link)) 
       .setDynamicLinkDomain(Constants.DYNAMIC_LINK_DOMAIN) 
       .buildShortDynamicLink() 
       .addOnCompleteListener(mActivity, new OnCompleteListener<ShortDynamicLink>() { 
        @Override 
        public void onComplete(@NonNull com.google.android.gms.tasks.Task<ShortDynamicLink> task) { 
         if (task.isSuccessful()){ 
          Uri shortLink = task.getResult().getShortLink(); 

          // String referrerName = SettingsHelper.getHelper(mActivity).getDisplayName(); 
          String subject = String.format("%s wants you to try Awesome App!", displayName); 
          String invitationLink = shortLink.toString(); 
          String msg = "Enjoy and share your moments with Awesome App! Use my referrer link: " 
            + invitationLink; 
          String msgHtml = String.format("<p>Start having fun with Awesome App's! Use my " 
            + "<a href=\"%s\">referrer link</a>!</p>", invitationLink); 

          Intent intent = new Intent(Intent.ACTION_SENDTO); 
          intent.setData(Uri.parse("mailto:")); // only email apps should handle this 
          intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
          intent.putExtra(Intent.EXTRA_TEXT, msg); 
          intent.putExtra(Intent.EXTRA_HTML_TEXT, msgHtml); 
          if (intent.resolveActivity(getPackageManager()) != null) { 
           startActivity(intent); 
          } 
         }else { 
          String errorMessage = task.getException().getMessage(); 
          Log.d(TAG, "Error creating Dynamic link " + errorMessage); 
         } 

        } 
       }); 

} 

火力地堡的动态链接API是在谷歌控制台启用如下面的截图: enter image description here

我可以创建从控制台很短的动态链接,但我希望能够以编程方式从client.I创建使用MOS当前版本Android的SDK版本11.22.1

回答

3

夫妇的想法来检查我:

1)确保Constants.DYNAMIC_LINK_DOMAIN马在您的Firebase项目中查看域名。确保您正在创建链接的App是该Firebase项目的一部分。确保应用程序具有最新的GoogleServices.plist(或json)。

2)请分享你有问题的长链接缩短。对于长链接,将& d = 1附加到链接的末尾,并在浏览器中导航到此类链接。确保此调试页面没有错误,并且没有相关的警告。

随意打开Firebase错误或发邮件给我自己在oleksiyi google.com如果没有帮助。

+1

感谢您的指针,问题是,有一个在应用程序域尾部斜杠。 –

+0

很高兴知道。在GMS Core v14即将推出的FDL Android更新中,将为这些情况带来更多描述性错误消息。 –