如何从refFromURL()中的数组插入链接-Storage Firebase

时间:2018-12-15 22:29:14

标签: javascript reactjs firebase react-native

我有一个数据库,其中包含不同的标题和指向Firebase存储的不同链接,如下图所示:

enter image description here

我想要这一行

storage.refFromURL('gs://........./File.jpg')
从下面的代码示例中

从上面的数据库中读取URL(imageUrl)。

storage.refFromURL(imageUrl) 

但是我根本做不到。如果我用imageUrl而不是gs://编写,则会收到一条错误消息,提示无法识别imageUrl。如果我将代码移到listenForItems(itemsRef)下,则应用程序崩溃。我很确定这是一个容易解决的问题,但是我的知识很薄弱,无法弄清楚。有人可以帮我吗?

//Some code to configure storage and database and other things//
var storage = firebase.storage();
//Here is where I would like to have the gs:// replaced with the link from the database (see below imageUrl under listenForItems(itemsRef))
var storageRef = storage.refFromURL('gs:.............jpg').getDownloadURL().then(function(url) {
  test = url;
}).catch(function(error) {
  test = "Error"
});

export default class Events extends React.Component {

constructor(props) {
  super(props);
  this.state = {
    dataSource: new ListView.DataSource({
      rowHasChanged: (row1, row2) => row1 !== row2,
    }),
  };
  this.itemsRef = this.getRef().child('-Events').limitToLast(5);
}

getRef() {
  return firebase.database().ref();
}

listenForItems(itemsRef) {
  itemsRef.on('value', (snap) => {
    var items = [];
    snap.forEach((child) => {
      items.push({
        headline: child.val().titlul,
        imageUrl: child.val().imageUrl,
        link: test,
        _key: child.key
      });
    });

    this.setState({
      dataSource: this.state.dataSource.cloneWithRows(items),
    });

  });
}
componentDidMount() {
  this.listenForItems(this.itemsRef);
}

render() // Some code that is not relevant for this ...

0 个答案:

没有答案