当前位置: 首页 > 知识库问答 >
问题:

缩短Firebase动态链接

淳于兴朝
2023-03-14

以前,我使用下面的动态链接在我的应用程序中启动一个想要的页面

http://jstock.co/a/news?code=1295.KL&symbol=PUBLIC+BANK+BHD

然而,这有一个缺点,对于没有安装我的应用程序的用户。对于没有安装我的应用程序的用户,这是当他点击链接时发生的情况

  1. 转到Google Play商店
  2. 安装应用程序。
  3. 启动应用程序。将转到应用程序的第一页,而不是在“深度链接”中指定的所需页面。

后来,我意识到Firebase动态链接可以解决我的问题。如果我使用下面的URL,一切正常。

https://g7b6h.app.goo.gl/?link=http%3A%2F%2Fjstock.co%2Fa%2Fnews%3Fcode%3D1295.KL%26symbol%3DPUBLIC%2BBANK%2BBHD&apn=org.yccheok.jstock.gui

对于第三步,用户现在可以直接进入深度链接中指定的所需页面,而不是进入应用程序的第一页。

不过,感觉上面的环节太长了。在阅读https://firebase.google.com/docs/dynamic-links/android/create之后,我尝试使用以下方法来缩短它

private void build() {
    Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLongLink(Uri.parse("https://g7b6h.app.goo.gl/?link=http%3A%2F%2Fjstock.co%2Fa%2Fnews%3Fcode%3D1295.KL%26symbol%3DPUBLIC%2BBANK%2BBHD&apn=org.yccheok.jstock.gui"))
            .buildShortDynamicLink()
            .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
                @Override
                public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                    if (task.isSuccessful()) {
                        Log.i("CHEOK", "success");
                        // Short link created
                        Uri shortLink = task.getResult().getShortLink();
                        Uri flowchartLink = task.getResult().getPreviewLink();

                        Log.i("CHEOK", "shortLink = " + shortLink);
                        Log.i("CHEOK", "flowchartLink = " + flowchartLink);

                    } else {
                        Log.i("CHEOK", "error : " + task.getException().getMessage());
                        // Error
                        // ...
                    }
                }
            });
}

但是,每次我都会得到error:Bad request

知道我错过了哪一步吗?

多谢了。

共有1个答案

龙默
2023-03-14

错误的请求很可能表明一个无效的API密钥--用于授权请求。我会做的是:

  1. 从Firebase控制台重新下载google-services.json,并覆盖项目中的google-services.json
  2. 检查是否为json文件中/api_key/current_key下的包名条目填充了API键参数
  3. 检查您是否在应用程序构建的底部包含了Google服务插件并名为apply。gradle

您可以对照文档中的步骤进行检查:https://firebase.google.com/docs/android/setup#manually_add_firebase

这有望修复API访问。

此时,您可能需要检查链接的调试版本:https://g7b6h.app.goo.gl/?link=http%3a%2f%2fjstock.co%2fa%2fnews%3fcode%3d1295.kl%26symbol%3dpublic%2bbhd&apn=org.yccheok.jstock.gui&d=1(末尾是&d=1)。显示了要在控制台中解决的几个警告。

 类似资料:
  • 我在firebase控制台中创建了一个动态链接,这个动态链接指向Play Store中的一个应用程序(即我使用这个链接通过WhatsApp与其他用户共享这个应用程序)。另外,我通过getDynamicLink方法在我的应用程序中接收深度链接。 当我向动态链接追加查询参数()时,Play Store页面将出现,但我无法在link方法中接收深度链接,该链接为空。如何将查询参数追加到动态链接并在安装时重

  • 我在我的应用程序中以编程方式创建了一些Firebase动态链接,当它们是长ULR时可以正常工作,我的意思是,Firebase创建的默认动态链接。如果用户没有安装应用程序,则打开Play store,安装应用程序后打开深度链接。另一方面,如果用户安装了app,则直接打开深度链接。 嗯,在那之后,我尝试创建一个简短的动态链接版本,因为URL太长了,看起来不“漂亮”,并且隐藏了一些出现在链接中的信息。

  • 我直接在web界面中生成了一个新的动态链接。这基本上将用于每个人,或者这是我的希望。让我们将该链接称为link.some-app.com/email-link。然后,我将其设置为指向https://some-app-123f.firebaseapp.com/__/auth/action。去第一个带我去第二个,到目前为止一切都很好。这些链接只是打开网页,而不是应用程序,也没有中间页面。 我可以用li

  • 在工作中,当通过firebase门户创建动态链接时,我们尝试使用可选的活动跟踪UTM参数。 动态链接工作正常,据我所知,从所有官方文档中可以看出,在创建动态链接时,只需在最后一个可选步骤中添加UTM值,就应该会导致这些值与事件一起发送。 但是,当我们在dynamic_link_app_open事件的事件或转化标签上查看没有看到任何归因值。我们看到该事件正在发送,但我们只是没有获得广告系列归因值,因

  • 我正在使用Firebase以及作为Firebase动态链接的一部分生成的url。 > firebase动态url如下所示:例如:https://myapp.page.link/h1c4 用户收到电子邮件并点击验证链接。 在重定向结束时,我可以看到url包含如下所示的oobCode: https://myapp.page.link/h1c4?apikey=&oobcode=yg2n2elu4qgbs

  • 我正在为一个开源会议写一个应用程序。 最初每个与会者将通过电子邮件或短信收到不同的链接,如 https://example.com/?token=FCCFC8BFA07643A1CA8015CBE74F5F17 然后用这个链接打开app,我们就可以通过令牌知道用户是哪个与会者。 Firebase在2016年发布了新的I/O动态链接功能,为用户提供了更好的体验。 我曾经尝试过,但是我找不到任何方法来