在Firebase存储器上显示文本文件中的文本

时间:2018-06-30 17:32:18

标签: firebase firebase-storage

我是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();
});

我和这里不一样。如何阅读此文件并将文本复制到页面中?到目前为止,我的代码正确吗?

谢谢。

2 个答案:

答案 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步骤。