如何解决Firebase:同步运行getDownloadURL吗?
我正在尝试使每个图像与地址并排显示。它的工作原理是……重复显示相同的地址,而不是跟上循环的步伐。我知道这是因为getDownloadUrl()异步运行,但是我不确定如何修复它。
js代码:
jQuery(document).ready(function($) {
"use strict";
$(".loader").delay(1000).fadeOut("slow");
$("#overlayer").delay(1000).fadeOut("slow");
var database = firebase.database();
var storageRef = firebase.storage().ref();
var listingsRef = database.ref('HOUSES');
listingsRef.on('value',getListings,errorData);
function getListings(data){
var Listings = data.val();
var keys = Object.keys(Listings);
for (var i = 0; i < keys.length; i++){
var k = keys[i];
var ADDRESS = Listings[k].ADDRESS;
var AVAILABLE = Listings[k].AVAILABLE;
var DESCRIPTION = Listings[k].DESCRIPTION;
var ROOMMATES = Listings[k].ROOMMATES;
var OWNER = Listings[k].OWNER;
var PRICE = Listings[k].PRICE;
var imageKeys = Object.keys(Listings[k].PICTURES);
var PICURL = Listings[k].PICTURES[imageKeys[0]];
var imagesRef = storageRef.child("images/" + k + "/" + PICURL);
imagesRef.getDownloadURL().then(function(url) {
addToListingsArea(url,ADDRESS)
}).catch(function(error) { console.log(error); });
}
}
function addToListingsArea(url,address){
document.getElementById("listings-area").innerHTML += "<img src='" + url + "' width='200px' >";
document.getElementById("listings-area").innerHTML += address + "<br>";
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。