我有一个数据库,其中包含不同的标题和指向Firebase存储的不同链接,如下图所示:
我想要这一行
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 ...