我正在尝试从Firebase数据库中获取随机值。我有用户,谁拥有旅行。我的旅行信息数据库方案如下:
用户信息的数据库方案如下:
我已经有了这个函数来检索3次随机旅行的值(但是需要预先指定用户ID):
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
app.controller('MainCtrl', function($scope) {
var database = firebase.database();
database.ref(`trips/${userid}/trips`).once('value')
.then(photosSnap => {
var trips = [];
photosSnap.forEach((trip) => {
trips.push({
tripKey: trip.key,
tripName: trip.val().name,
tripPhotoUrl: trip.val().photourl,
tripBeginDate: ConvertDate(trip.val().begindate),
tripEndDate: ConvertDate(trip.val().enddate)
});
});
trips = shuffleArray(trips);
trips.splice(3);
$scope.repeatData = trips;
$scope.userid = userid;
$scope.$apply();
console.log(trips);
}).catch(err => alert(err));
});
此函数用于检索用户的值(同样需要预先指定用户ID):
var database = firebase.database();
database.ref(`user_profiles/${userid}/photourl`).once('value').then(photosSnap => {
var userphotourl = photosSnap.val();
$('#userphoto').attr('src', userphotourl);
});
var database = firebase.database();
database.ref(`user_profiles/${userid}/name`).once('value').then(photosSnap => {
var username = photosSnap.val();
$('#username').html(username);
});
现在我正在尝试从随机用户的X随机旅行中检索值(每个用户最多一次旅行)。我也想检索相应的用户信息。