javascript - 当作为参数传递给 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,因为它位于动态链接中,以便可以播放音频。
解决方案
我不相信这在您设计它的方式上是可能的,Firebase 动态链接会取出令牌以缩短链接,并且没有办法强迫它不这样做。你可以做的是:
1 - 使文件公开可读;
2 - 在您的应用程序中单独获取和处理文件,而不使用 Firebase 动态链接;
推荐阅读
- django - django 2 用户在同一页面上编辑和更改密码表单
- django - 未提供 Django 身份验证凭据
- python-2.7 - 需要帮助在包含聚合值的列上连接两个数据框
- c# - 如何根据数据类型生成随机变量?
- php - Laravel 与表格的关系
- java - 在 groovy 中记录准备好的 sql 查询
- javascript - 如何在 Angular js 中获取和搜索数据?
- android - 如何使用 Fresco 和 Android 以编程方式创建 SimpleDraweeViews
- c# - Access DB Context in program.cs
- android - Open other app using bundle id in Android using React Native?