我是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();
});
我在这里不和。如何阅读此文件并将文本复制到我的页面?到目前为止我的代码是否正确?
谢谢。
<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");
});
我花了几天时间搞清楚如何解决这个问题,但后来我才意识到,我们正在恢复url
,所以我们可以在url
上创建一个get请求并将响应作为文本。我实际上是使用角度来做这个,但你可以用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来帮助你。用你从firebase获得的fetch
替换小提琴的downloadUrl
中的链接。
更新:如果你得到these错误,请确保首先遵循CORS
步骤。