首页 > 解决方案 > 当作为参数传递给 Firebase 动态链接时,Firebase 存储访问令牌会被删除

问题描述

我已经在firebase存储中存储了一个音频文件,我想将其带有访问令牌的url作为参数传递给firebase动态链接。

我想让我的file.component,ts可在 whatsapp、FB 等上公开共享,下面是我获取文件参数的代码

this.activatedRoute.queryParams.subscribe(params => {
      this.userName = params["user"];
      this.audioPath = params["audio"]; //firebase storage audio with access token
      this.docId = params["docId"];
      this.docTitle = params["title"];
      this.userId = params["userId"]; 
)

现在我想将上述所有参数作为链接传递给 firebase 动态链接 http.post 调用以获取短链接。

音频参数由 url 到 firebase 存储访问 url 以及访问令牌,例如

https://firebasestorage.googleapis.com/v0/b/<site>/o/audio%2Fsong1-min.mp3?alt=media&token=xxxx-xxxxx-xxxx-xxxxx

当我将此音频变量传递给动态链接时,它会删除令牌并减少路径

https://firebasestorage.googleapis.com/v0/b/<site>/o/audio%2Fsong1-min.mp3

因此,当我收到短链接时,它会在 UI 上显示所有其他字段以及音频标签,但 src 已删除令牌,因此如果在 whats 应用程序、FB 等上共享,外部用户无法播放音频。

无论如何我可以发送这个firebase存储访问url,因为它位于动态链接中,以便可以播放音频。

标签: javascriptangularfirebasegoogle-cloud-firestorefirebase-dynamic-links

解决方案


我不相信这在您设计它的方式上是可能的,Firebase 动态链接会取出令牌以缩短链接,并且没有办法强迫它不这样做。你可以做的是:

1 - 使文件公开可读;

2 - 在您的应用程序中单独获取和处理文件,而不使用 Firebase 动态链接;


推荐阅读