【问题标题】:Firebase Dynamic Link ShortUrl not working in AndroidFirebase 动态链接 ShortUrl 在 Android 中不起作用
【发布时间】:2018-02-19 08:45:48
【问题描述】:

我无法使用 Android Firebase Invite 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);
                        }

                    }
                });

}

Google Console 上启用了 Firebase 动态链接 API,如下面的屏幕截图所示:

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

【问题讨论】:

    标签: android firebase firebase-dynamic-links firebase-invites


    【解决方案1】:

    我建议先创建长链接,然后是排序链接,分两步,就像下面的问题Can't create short Firebase dynamic link -> Dynamic link error 7: Forbidden

    【讨论】:

    • 这解决了我在更改包名称并将新应用添加到我的 firebase 项目后开始生成短链接的问题。
    【解决方案2】:

    要检查的几个想法:

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

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

    如果没有帮助,请随时打开 Firebase 错误或在 oleksiyi at google.com 给自己发送电子邮件。

    【讨论】:

    • 感谢指点,问题是应用域中有一个斜杠。
    • 很高兴知道。在 GMS Core v14 中,即将到来的 FDL Android 更新将为此类情况带来更多描述性错误消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多