android - 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 ”。
解决方案
我可以在您的代码中看到一个小错误。这是由于错误地从文档中复制了一些代码而没有编辑它们造成的。
这是导致您的问题的行:
.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
文件中找到当前版本代码。在你的项目中。
如果您仍然面临一些困难,请告诉我。
推荐阅读
- java - 如何保存数据持久化以便我可以离线使用它们
- graphql - GraphQL:为什么必须在此示例中同时解构 arg 和函数?
- r - 从R中两个符号之间的段落中提取文本
- javascript - iScroll v4.2.5 - Google Chrome 上的链接不可点击
- javascript - 组件未重新加载,但状态随 useState 发生变化
- python - 带有随机选择器的抓取表
- php - 如何在 wordpress 小部件中列出 s3 存储桶对象?
- excel - 如何通过 VBA 使用我的 powerpoint 模板来构建我想要的幻灯片?
- android - 如何在一天中创建多个警报,并且这将在每周选定的日子重复?
- sql - 循环遍历表以连接行