首页 > 解决方案 > Firebase 动态链接请求包含无效参数

问题描述

我正在尝试使用 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 ”。

标签: androidfirebasefirebase-dynamic-links

解决方案


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

这是导致您的问题的行:

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

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

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

如果您仍然面临一些困难,请告诉我。


推荐阅读