gpt4 book ai didi

angular - 从 Firebase 存储下载文件不起作用

转载 作者:太空狗 更新时间:2023-10-29 17:40:12 26 4
gpt4 key购买 nike

在我的 Angular 应用程序中,我正在尝试检索保存在 firebase 存储中的文件。

为此我写了如下代码:

    var storage = firebase.storage();
var fileRef = storage.ref(`${this.idOfCurrentUser}/personalData.card`);

var blob = null;

console.log("THIS LINE DOES GET PRINTED");
fileRef.getDownloadURL().then(function(url) {

console.log("THIS LINE NEVER GETS PRINTED");
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function(event) {
blob = xhr.response;
};
xhr.open('GET', url);
xhr.send();

}).then(function() {
//some more code
}).catch(function(error) {
console.log(error);
});

此代码遵循 firebase ( https://firebase.google.com/docs/storage/web/download-files) 的文档......但它不起作用。

具体来说,程序在以下行停止:

fileRef.getDownloadURL().then(function(url) {

控制台中没有错误信息。但是轮子永远转动,整个应用程序变得无法使用。

有人知道从 Firebase 存储中检索文件的有效方法吗?


更新:

根据 Joseph Webber 的建议,我将代码的第一行更改为以下内容:

    var storage = firebase.storage();
var id = this.idOfCurrentUser;
var fileRef = storage.ref(`${id}/personalData.card`);

但是,问题还是一样。


更新 2:

根据 Joseph Webber 的另一个建议,我还尝试了以下操作:

var fileRef = storage.child(`${id}/personalData.card`);

但是,这会给出以下错误消息:

"Property 'child' does not exist on type 'Storage'"

enter image description here


更新 3:

也试过这个:

var fileRef = storage.ref(this.idOfCurrentUser + "/personalData.card");

...也没有什么不同


P.S.:存储规则如下:

enter image description here

最佳答案

从模板文字中删除 this.

var fileRef = storage.ref(`${idOfCurrentUser}/personalData.card`);

编辑

尝试将 storage.ref 更改为 storage.child

var fileRef = storage.child(`${id}/personalData.card`);

关于angular - 从 Firebase 存储下载文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51899370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com