Firebase动态链接请求包含无效参数

时间:2019-01-19 20:57:00

标签: android firebase firebase-dynamic-links

我正在尝试使用Firebase动态链接构建动态网址,但出现异常。

private void sendNativeInvites(){

        String email = UserUtils.getCurrentUser(this).getEmail();
        String link = "https://play.google.com/store/apps/details?id=com.mindedges.beephourly?invitedby=" + email;

        FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLink(Uri.parse(link))
                .setDomainUriPrefix("https://c6yge.app.goo.gl")
                .setAndroidParameters(
                        new DynamicLink.AndroidParameters.Builder("com.example.android")
                                .setMinimumVersion(125)
                                .build())
                .buildShortDynamicLink()
                .addOnSuccessListener(new OnSuccessListener<ShortDynamicLink>() {
                    @Override
                    public void onSuccess(ShortDynamicLink shortDynamicLink) {
                        Log.e(TAG, "Successfully built build dynamic link");
                        Uri invitationUrl = shortDynamicLink.getShortLink();
                        doSendInvite(invitationUrl);
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Log.e(TAG, "failed to build dynamic link", e);
                    }
                });
    }



failed to build dynamic link
    com.google.android.gms.common.api.ApiException: 400: Request contains an invalid argument.
        at com.google.android.gms.common.api.internal.TaskUtil.setResultOrApiException(Unknown Source:12)
        at com.google.firebase.dynamiclinks.internal.zzi.zza(Unknown Source:4)
        at com.google.firebase.dynamiclinks.internal.zzn.dispatchTransaction(Unknown Source:10)
        at com.google.android.gms.internal.firebase_dynamic_links.zzb.onTransact(Unknown Source:12)
        at android.os.Binder.execTransact(Binder.java:697)

没有得到错误的参数传递。根据Firebase控制台,我拥有域“ https://c6yge.app.goo.gl”。

2 个答案:

答案 0 :(得分:2)

我可以在您的代码中看到一个小错误。这是由于错误地从文档中复制了一些代码而不进行编辑引起的。

以下是导致您遇到问题的行:

.setAndroidParameters(
                    new DynamicLink.AndroidParameters.Builder("com.example.android")
                            .setMinimumVersion(125)
                            .build())

您应该用自己的软件包名称代替"com.example.android",我认为它是"com.mindedges.beephourly"。因此,他们在文档中写的就像一个例子,但是您应该将其更改为自己的包名称。

还可以使用上面的相同代码代替(125),将其更改为您自己的版本代码。在android中,有适用于Apps的版本代码,当您更新应用程序时,您将不得不更改版本代码(整数)和版本名称(字符串),因此您可能拥有许多App版本,但在该版本中您应该通过最低可以打开该动态链接的最低版本代码。我被迫不相信您曾经在Playstore中的应用中进行过125次更新。因此,如果要打开所有新旧应用程序,则可以将(125)替换为(1)。您可以在build.gradle文件中找到当前的版本代码。在您的项目中。

如果您仍然遇到困难,请告诉我。

答案 1 :(得分:0)

能否再次检查您是否拥有正确的域?根据您的代码,看起来一切正常。但是,问题似乎出在您的域上。

将链接检查为https://c6yge.app.goo.gl/?link=https://google.com,应将您重定向到https://google.com,但没有。而是显示未找到动态链接。所以我认为它的配置不正确。

这是一个示例工作链接:https://ratbu.page.link/?link=https://google.com