Firebase动态链接短URL在Android中不起作用

Firebase动态链接短URL在Android中不起作用,android,firebase,firebase-dynamic-links,firebase-invites,Android,Firebase,Firebase Dynamic Links,Firebase Invites,我无法使用Android Firebase邀请SDK创建ShortDynamicLink。我可以创建长动态链接,但它始终无法创建短动态链接,总是给出错误请求的错误消息。代码如下: private void sendInvite(String uid, final String displayName){ String link = "https://appdomain.com/?invitedby=" + uid; com.google.android.g

我无法使用Android Firebase邀请SDK创建ShortDynamicLink。我可以创建长动态链接,但它始终无法创建短动态链接,总是给出错误请求的错误消息。代码如下:

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);
                        }

                    }
                });

}
private void sendInvite(字符串uid,最终字符串displayName){
字符串链接=”https://appdomain.com/?invitedby=“+uid;
com.google.android.gms.tasks.Task shortLinkTask=FirebaseDynamicLinks.getInstance().createdynamicclink()
.setLink(Uri.parse(link))
.SetDynamicLink域(常数.DYNAMIC链接域)
.buildShortDynamicClink()
.addOnCompleteListener(mActivity,新的OnCompleteListener(){
@凌驾
public void onComplete(@NonNull com.google.android.gms.tasks.Task){
if(task.issusccessful()){
Uri shortLink=task.getResult().getShortLink();
//String referrerName=SettingsHelper.getHelper(mActivity.getDisplayName();
String subject=String.format(“%s希望您尝试Aweasome应用!”,displayName);
字符串invitationLink=shortLink.toString();
String msg=“使用真棒应用程序享受并分享您的精彩时刻!使用我的推荐人链接:”
+邀请链接;
String msgHtml=String.format(“开始享受精彩应用的乐趣!使用我的”
+“!

”,邀请链接); 意向意向=新意向(意向.行动\发送到); intent.setData(Uri.parse(“mailto:”);//只有电子邮件应用程序才能处理此问题 intent.putExtra(intent.EXTRA_SUBJECT,SUBJECT); intent.putExtra(intent.EXTRA_TEXT,msg); intent.putExtra(intent.EXTRA_HTML_TEXT,msgHtml); if(intent.resolveActivity(getPackageManager())!=null){ 星触觉(意向); } }否则{ 字符串errorMessage=task.getException().getMessage(); Log.d(标记“创建动态链接时出错”+错误消息); } } }); }
Firebase Dynamic link API已在Google控制台上启用,如下面的屏幕截图所示:

我可以从控制台创建一个简短的动态链接,但我希望能够从客户端以编程方式创建它。我正在使用Android SDK 11.22.1版的mos最新版本来检查:

1) 确保Constants.DYNAMIC_LINK_域与Firebase项目中的域匹配。确保创建链接的应用程序是Firebase项目的一部分。确保应用程序具有最新的GoogleServices.plist(或json)

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


如果没有帮助,请随时打开Firebase bug或发电子邮件到google.com上的oleksiyi。

我建议先创建长链接,然后再创建排序链接,这是两个步骤,就像下面的问题一样。

感谢指针,问题是应用程序域中有一个尾随斜杠。很高兴知道这一点。在GMS Core v14中,即将进行的FDL Android更新将为此类情况带来更多描述性错误消息。这修复了我在更改包名并向firebase项目添加新应用程序后开始生成短链接的问题。