我是Firebase的业余爱好者。我的短期目标是从上传到Firebase的文本文件中读取数据。这是代码(从文档复制粘贴):
storageRef.child('images/stars.jpg').getDownloadURL().then(function (url) {
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function(event) {
var blob = xhr.response;
};
xhr.open('GET', (/*here I put the url of the file*/));
xhr.send();
});
我和这里不一样。如何阅读此文件并将文本复制到页面中?到目前为止,我的代码正确吗?
谢谢。
答案 0 :(得分:0)
<object id="linkbox"width="100%" height="100%" style="border: 2px solid red;"> </object>
storageRef.child('documents/'+fileName+".txt").getDownloadURL().then(function(url) {
console.log('File available at', url);
var db= document.getElementById('linkbox');
db.data=url;
}).catch(function(error) {
// Handle any errors
console.log("Not found");
});
答案 1 :(得分:0)
我花了几天的时间弄清楚如何解决此问题,但是后来我意识到,我们已经收回了url
,因此我们可以仅在该url
上创建一个get请求并以文本。我实际上是使用angular进行的,但是您可以使用fetch
ngOnInit() {
const ref = this.storage.ref('array.txt');
ref.getDownloadURL().subscribe(data => {
this.http.get(data, { responseType: 'text' as 'json' }).subscribe(text => console.log(text));
}
);
};
使用fetch
const ref = this.storage.ref('array.txt');
ref.getDownloadURL().subscribe(data => {
fetch(data)
.then(function(response) {
response.text().then(function(text) {
console.log(text);
});
});
});
一个JSfiddle可以帮助您。将小提琴的fetch
中的链接替换为您从firebase获得的downloadUrl
。
更新:
如果遇到CORS
错误,请确保先执行these步骤。