ShortDynamicLink不会为动态链接生成短链接

sam*_*sam 6 android firebase firebase-dynamic-links

创建动态链接

  DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse("http://shaharapp.in/"))
            .setDynamicLinkDomain("https://cuh8g.app.goo.gl/")
            // Open links with this app on Android
            .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
            // Open links with com.example.ios on iOS
            .buildDynamicLink();

     dynamicLinkUri = dynamicLink.getUri();
Run Code Online (Sandbox Code Playgroud)

在此之后,我获得了一个很长的动态链接.将此dynamicLinkUri传递给shortLinkTask

 Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLongLink(dynamicLinkUri)
            .buildShortDynamicLink();
    shortLinkTask.addOnCompleteListener(new OnCompleteListener<ShortDynamicLink>() {
        @Override
        public void onComplete(@NonNull Task<ShortDynamicLink> task) {
            if (task.isSuccessful()) {


                Uri shortLink = task.getResult().getShortLink();
                link_txt.setText(shortLink.toString());
            }
            else {

                ViewGroup container = (ViewGroup) findViewById(R.id.snackbar_layout);
                Snackbar.make(container, "error", Snackbar.LENGTH_SHORT).show();

            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

这项任务没有完成,经过调试我得到了这个

com.google.android.gms.common.api.ApiException:7:错误请求类com.google.android.gms.common.api.ApiException

Ole*_*nov 4

您获得的长链接是什么?我建议尝试长链接并确保链接正常工作。

另外,附加&d=1到长链接。此类链接将导航到调试页面,并显示可能的错误/警告。

查看您的代码,失败的可能原因之一是域的格式。请参阅示例https://firebase.google.com/docs/dynamic-links/android/create。域应为仅包含域的字符串,不包含 https 方案:

.setDynamicLinkDomain("abc123.app.goo.gl")
Run Code Online (Sandbox Code Playgroud)