Указано пользователем c info Profile pi c display Я исправил массу ошибок, которые у меня были раньше. Цель: динамически отображать всех зарегистрированных пользователей с их именами, отображаемыми под их профилем pi c. Что он делает сейчас: динамически отображает всех пользователей (при нажатии показывает конкретную c информацию о пользователе) и фотографии профиля в отдельных блоках div. Изображение: Dynami c отображаемые изображения Фрагмент:
const dbRef = firebase.database().ref();
const usersRef = dbRef.child('userInfo');
const userListUI = document.getElementById("userList");
usersRef.on("child_added", snap => {
let user = snap.val();
let $h3 = document.createElement("h3");
$h3.innerHTML = user.name;
$h3.setAttribute("child-key", snap.key);
$h3.addEventListener("click", userClicked)
userListUI.append($h3);
});
function userClicked(e) {
var userID = e.target.getAttribute("child-key");
const userRef = dbRef.child('userInfo/' + userID);
const userDetailUI = document.getElementById("userDetail");
userDetailUI.innerHTML = ""
userRef.on("child_added", snap => {
var $p = document.createElement("p");
$p.innerHTML = snap.key + " - " + snap.val()
userDetailUI.append($p);
});
}
var storage = firebase.storage();
var storageRef = storage.ref();
$('#List').find('tbody').html('');
var i = 0;
storageRef.child('users').listAll().then(function(result) {
result.items.forEach(function(imageRef) {
i++;
displayImage(i, imageRef);
});
});
function displayImage(row, images) {
images.getDownloadURL().then(function(url) {
// console.log(url);
let new_html = '';
// new_html += '<tr>';
new_html += '<td>';
// new_html += '</td>';
// new_html += '<td>';
new_html += '<img src= "' + url + '">';
new_html += '</td>';
// new_html += '</tr>';
new_html += row;
$('#List').find('tbody').append(new_html);
});
}
<table id="List">
<tbody>
</tbody>
</table>
<br><br>
<ul id="userList"></ul>
<div id="userDetail">
<p>
<strong class="detailName"></strong>
</p>
</div>
То, что я сделал, чтобы исправить: поиск в Google, игра с функцией отображения изображения (попытался переместить $ ('# List'). Find ('tbody'). append (new_ html); от 2-го до последнего});) добавьте что-нибудь к new_ html, чтобы отображать имена, но images.getDownloadURL портит другие вещи, которые я пробовал, потому что если я добавлю еще после или до него, я получу сообщение об ошибке, потому что изображения хранятся в хранилище, а информация о пользователе находится в базе данных в реальном времени. Есть указатели?