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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...