Javascript 从firebase将图像url保存到实时数据库

Javascript 从firebase将图像url保存到实时数据库,javascript,firebase,vue.js,firebase-realtime-database,Javascript,Firebase,Vue.js,Firebase Realtime Database,我在将这个.picture添加到addTutorial:function(){} 在从中获取URL后,我正在尝试保存该URL 导出默认值{ 名称:'tutform', 火基:{ 教程:messagesRef }, 数据(){ 返回{ imageData:null, 图片:空, 上载值:0, 对话:错, displayText:'推我!', 新图:{ 首先:",, 内容:“”, 电子邮件:“”, 最后:'', 语言:'', 标题:“”, 日期:'', 图片:“” }, 语言:[ “Html”、“C

我在将
这个.picture
添加到
addTutorial:function(){}

在从中获取URL后,我正在尝试保存该URL

导出默认值{
名称:'tutform',
火基:{
教程:messagesRef
},
数据(){
返回{
imageData:null,
图片:空,
上载值:0,
对话:错,
displayText:'推我!',
新图:{
首先:",,
内容:“”,
电子邮件:“”,
最后:'',
语言:'',
标题:“”,
日期:'',
图片:“”
},
语言:[
“Html”、“Css”、“Vue”、“Ruby”、“Js”、“Sass”、“其他”
],
姓名规则:[
v=>!!v | |“您必须键入内容”,
v=>v.length!!v | |“需要电子邮件”,
v=>/.+@.+/.test(v)| |'请输入包含@'的有效电子邮件,
],
内容规则:[
v=>!!v | |“内容是必需的,朋友!”
],
标题规则:[
v=>!!v | |“需要标题,伙计!”,
v=>v.length{
this.uploadValue=(snapshot.bytesttransfered/snapshot.totalBytes)*100;
},错误=>{
console.log(错误消息)
},
() => {
this.uploadValue=100;
storageRef.snapshot.ref.getDownloadURL()。然后((url)=>{
this.picture=url;
console.log(这个.picture);
toastr.success('图像上传成功');
})
}
)
},
addTutorial:function(){
this.picture=null;
messagesRef.push(this.newutorial);
this.newutorial.first='';
this.newutorial.last='';
this.newutorial.content='';
this.newutorial.email='';
this.newutorial.language='';
this.newutorial.title='';
this.newutorial.date='',
this.newutorial.picture=(this.picture);
toastr.success('Horray!消息发送成功');
this.displayText='干得好!';
this.nameRules=true;
this.emailRules=true;
this.contentRules=true;
this.titleRules=true;
},
markcompleted:function(){
this.displayText='hum..somthing仍然缺少';
}
},
}
我尝试使用以下行调用url:

this.newTutorial.picture= (this.picture);
但运气不好,我仍然可以在控制台上获取URL,但不能在实时数据库上获取


有什么建议吗?

您的主要问题似乎是在将
newTutorial
对象推送到实时数据库之后,您只分配
this.newTutorial.picture=this.picture

据我所知,似乎没有任何理由在
数据
对象中有一个单独的
图片
值。您最好直接将图片URL分配给
newutorial
,并在推送数据后将其清除

storageRef.snapshot.ref.getDownloadURL()。然后(url=>{
this.newTutorial.picture=url;
toastr.success('图像上传成功');
})
addTutorial:function(){
messagesRef.push(this.newutorial)
this.newutorial={
首先:",,
内容:“”,
电子邮件:“”,
最后:'',
语言:'',
标题:“”,
日期:'',
图片:“”
}
toastr.success('Horray!消息发送成功');
this.displayText='干得好!';
this.nameRules=true;
this.emailRules=true;
this.contentRules=true;
this.titleRules=true;
}

谢谢,伙计!这帮我实现了目标,你是对的。这不起作用的主要原因是因为时间问题。我在加载图像后调用了URL,所以我放了一个垃圾箱用于上传,然后我得到了URL,然后我有一个用于表单提交部分的按钮,现在它传递了URL。这太酷了,谢谢。this.newTutorial.picture=url;非常有用!