Ionic 4-Firebase-存储未将数据发送到实时数据库

时间:2019-03-19 23:37:59

标签: javascript firebase firebase-realtime-database firebase-storage

我正在将图像上传到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
}

1 个答案:

答案 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');
          })
        })
    });

另请参阅: