我尝试将图片上传到Firebase存储,然后从存储中获取下载URL,以便将其保存到我的数据库中。
注释掉的行有效,所以我知道" getDownloadURL"功能或在我的存储参考中。我有一个类似的功能,可以使用较短的引用(userId +' /' + profilePicture)。
let returnVal;
const image = 'data:image/jpeg;base64,' + result;
const pictures = firebase.storage().ref(userId + '/' + newPostKey +'/' + 'pictures');
pictures.putString(image, `data_url`);
//firebase.database().ref('Posts/' + userId + '/' + newPostKey).child('photoURL').set("ifni");
firebase.storage().ref(userId + '/' + newPostKey + '/' + pictures).getDownloadURL().then(function (url) {
// Execute (unknown)
returnVal = url;
firebase.database().ref('Posts/' + userId + '/' + newPostKey).child('photoURL').set(returnVal);
})
答案 0 :(得分:1)
您可以从此doc
中提到的回调承诺中获取网址pictures.putString(image, `data_url`).then(function(snapshot) {
console.log('Uploaded a data_url string!');
var url = snapshot.downloadURL;
//add it to firestore
});
答案 1 :(得分:0)
您可以执行以下操作
storageRef = firebase.storage().ref(userId + '/' + newPostKey +'/' + 'pictures');
parseUpload = storageRef.putString(image, 'data_url');
parseUpload.on('state_changed', (_snapshot) => {
},
(_err) => {
// handle error here
},
(success) => {
let url = parseUpload.snapshot.downloadURL
});
firebase.database().ref('Posts/' + userId + '/' + newPostKey).child('photoURL').set(url);