Firebase等待从存储下载图像

时间:2018-08-01 17:00:21

标签: javascript firebase firebase-realtime-database firebase-storage

我目前正在构建一个聊天应用程序,其中包含个人资料图片(存储在firebase存储中)以及用户数据和文本(存储在firebase数据库中)。我试图遍历消息数据库,并在其旁边显示消息数据以及用户的个人资料图片。我目前正在使用以下代码:

var theDataRef = new Firebase('https://my-chat.firebaseio.com');

theDataRef.orderByChild("timestamp").limitToLast(25).once('value', function (snapshot) {
    snapshot.forEach(function (childSnapshot) {

        var message = childSnapshot.val();

        var email = message.email;
        var stringEmail = email.split('.').join('-');

        var storage = firebase.storage();
        var storageRef = storage.ref();

        var starsRef = storageRef.child('images/' + stringEmail + '.jpg');

        starsRef.getDownloadURL().then(function (url) {
            displaytableRow(message.name, message.text, url);
        }).catch(function (error) {
            displaytableRow(message.name, message.text, "images/dog.jpg");
        });
    });
});

该代码可在设备上正常运行,但仅能使用一半时间。我认为这与数据库调用比从存储中检索图像的速度更快有关。

我的问题是,这是从数据库调用中迭代地从存储中获取图像的最佳方法吗?如果数据库调用太快又有问题,我该如何使此函数等待图像下载在移至下一条记录之前?

0 个答案:

没有答案