Firebase 动态 link 请求包含无效参数

Firebase dynamic link request contains an invalid argument

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

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”。

你能仔细检查一下你的域名是否正确吗?根据您的代码,看起来一切正常。但是,问题似乎出在您的域上。

检查 link 为 https://c6yge.app.goo.gl/?link=https://google.com, you should be redirected to https://google.com 但它没有。相反,它只显示 Dynamic Link not Found。所以我认为它没有正确配置。

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

我发现您的代码中存在一个小错误。这是由于错误地从文档中复制了一些代码而没有编辑它们造成的。

以下是导致您出现问题的行:

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

而不是 "com.example.android" 你应该用你自己的包名替换它,我认为它是 "com.mindedges.beephourly"。所以在文档中他们写的就像一个例子,但你应该把它改成你自己的包名。

同样在上面的相同代码中,您应该将其更改为您自己的版本代码,而不是 (125)。在 android 中有应用程序的版本代码,当您更新应用程序时,您将不得不更改版本代码(整数)和版本名称(字符串),因此您可能有多个应用程序版本,但您应该在其中通过最低可以打开该动态的最低版本代码 link。我不得不不相信您曾经在 Playstore 中对您的应用程序进行过 125 次更新。因此,如果您希望打开所有新旧版本的应用程序,您可以将 (125) 替换为 (1)。您可以在 build.gradle 文件中找到当前版本代码。在你的项目中。

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