使用Vue.js使用变量访问Firebase数据库中的正确数据
我正在构建一个以Vue.js和Firebase为后端的应用程序。我正在根据URL参数检索数据,例如: 然后,由于这个URL参数,我的代码检索值owneruid和tripuid。它允许我从用户那里获取信息,如userphotourl、用户名、tripphotourl、tripname、tripbegindate、tripenddate。到目前为止,它显示的值,所以一切都很好 变量owneruid和tripuid是存储的,但是由于异步的原因,我在我的first.then(photosSnap=>{)中包含了对使用此变量的函数的调用,以按逻辑顺序运行其余代码 现在我想获取用户(owneruid)一次旅行(tripuid)的所有照片的所有照片URL。数据库结构如下: 如何检索所有photourl并使用v-for显示它们 我的代码:使用Vue.js使用变量访问Firebase数据库中的正确数据,firebase,firebase-realtime-database,vue.js,Firebase,Firebase Realtime Database,Vue.js,我正在构建一个以Vue.js和Firebase为后端的应用程序。我正在根据URL参数检索数据,例如: 然后,由于这个URL参数,我的代码检索值owneruid和tripuid。它允许我从用户那里获取信息,如userphotourl、用户名、tripphotourl、tripname、tripbegindate、tripenddate。到目前为止,它显示的值,所以一切都很好 变量owneruid和tripuid是存储的,但是由于异步的原因,我在我的first.then(photosSnap=>{)
从“./components/HelloWorld”导入HelloWorld
从“Firebase”导入Firebase
让配置={
阿皮奇:“AIzaSyA9ap6pzsvkOv4tA2rgM6GKl2snKabzel4”,
authDomain:“travelertest-e316f.firebaseapp.com”,
数据库URL:“https://travelertest-e316f.firebaseio.com",
projectId:“travelertest-e316f”,
storageBucket:“travelertest-e316f.appspot.com”,
messagingSenderId:“605093453777”
}
让app=Firebase.initializeApp(配置);
让database=app.database();
让photosRef=database.ref('trips');
函数GetURLParameter(sParam)
{
var sPageURL=window.location.search.substring(1);
var sURLVariables=sPageURL.split('&');
对于(变量i=0;i{
var obj=photosnap.val();
owneruid=obj['owneruid'];
tripuid=obj['tripuid'];
console.log(owneruid);
console.log(tripuid);
getUserInfo();
getTripInfo();
getTripDate();
});
函数getUserInfo(){
database.ref(`user\u profiles/${owneruid}`)。一次('value')。然后(photosnap=>{
var obj=photosnap.val();
var userphotourl=obj['photourl'];
var username=obj['name'];
$('.userphoto').attr('src',userphotourl);
$('.username').html(用户名);
});
}
函数getTripInfo(){
database.ref(`trips/${owneruid}/trips/${tripuid}`)。一次('value')。然后(photosnap=>{
var obj=photosnap.val();
var tripphotourl=obj['photourl'];
var tripname=obj['name'];
$('#tripcoverphoto').attr('src',tripphotourl);
$('.tripname').html(tripname);
});
}
函数ConvertDate(DateInSeconds){
var tripbegindateseconds=DateInSeconds;
var tripbegindatefull=new Date(0);//其中的0是键,它将日期设置为历元
设置秒(tripbegindateseconds);
var tripbeginmonth=tripbegindatefull.getUTCMonth()+1;//从1到12个月
var tripbeginday=tripbegindatefull.getUTCDate();
var tripbeginyear=tripbegindatefull.getUTCFullYear();
tripbegindate=tripbeginday+“/”+tripbeginmonth+“/”+tripbeginyear;
返回三倍体;
}
函数getTripDate(){
database.ref(`trips/${owneruid}/trips/${tripuid}`)。一次('value')。然后(photosnap=>{
var obj=photosnap.val();
var tripbegindate=ConvertDate(obj['begindate']);
var tripenddate=ConvertDate(obj['enddate']);
$('.tripbegindate').html(tripbegindate);
$('.tripenddate').html(tripenddate);
});
}
/*database.ref(`links/${link}`)。一次('value')。然后(photosnap=>{
var obj=photosnap.val();
var owneruid=obj['owneruid'];
var-tripuid=obj['tripuid'];
});
console.log(owneruid);
console.log(tripuid)*/
导出默认值{
名称:“应用程序”,
火基:{
照片:photosRef
}
}
-