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
文件中找到当前版本代码。在你的项目中。
如果您仍然遇到困难,请告诉我。
我正在尝试使用 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
文件中找到当前版本代码。在你的项目中。
如果您仍然遇到困难,请告诉我。