我正在将图像上传到Firebase存储,然后我希望它们进入实时数据库,该代码在ionic v3中有效,但是现在看来有些问题了,因为数据进入了存储,但不是数据库。
createPost(picture: string): Promise<any> {
firebase.storage().ref('/home/')
.child('picture.jpg')
.putString(picture, 'base64', { contentType: 'image/jpg' })
.then((savedPicture) => {
firebase.database().ref('Home').push({
picture: savedPicture.downloadURL
}).then(() => {
alert('Sucess');
this.navCtrl.navigateRoot('/home');
})
});
return
}
答案 0 :(得分:2)
新上载的下载URL不再以savedPicture.downloadURL
的形式提供。上传完成后,您需要在存储参考上调用getDownloadURL()
:
let ref = firebase.storage().ref('/home/').child('picture.jpg');
ref.putString(picture, 'base64', { contentType: 'image/jpg' })
.then((savedPicture) => {
ref.getDownloadURL().then((url) => {
firebase.database().ref('Home').push({
picture: url
}).then(() => {
alert('Sucess');
this.navCtrl.navigateRoot('/home');
})
})
});
另请参阅: