Запрос всех родителей и их дочерней Firebase

#javascript #jquery #firebase #firebase-realtime-database

#javascript #jquery — запрос #firebase #firebase-база данных в реальном времени #jquery

Вопрос:

В основном я пытаюсь перечислить идентификаторы пользователей по 1 за раз, а также их дочерние элементы (firstname, last name, email, picture), поэтому в основном я хочу, чтобы userid-> firstname, lastname, emailpicture зацикливались для каждого пользователя. это кажется очень трудным сделать в firebase.

макет firebase ( я не могу это изменить ) : https://i.imgur.com/mJ5whBC.jpg

Я не понимаю, как динамически захватывать всех родителей, поскольку у них есть случайно сгенерированные идентификаторы. я могу делать это один за другим, но мне нужно делать это динамически каждый раз, когда добавляется пользователь. Ниже приведен пример того, что я хочу сделать для каждого, но я вручную ввожу идентификатор, поэтому это довольно неуместно.

 var database = firebase.database();

database.ref().once('value', function (data) {
picture = data.child("4320552453").child('picture').val();
firstName = data.child("4320552453").child('firstname').val();
lastName = data.child("4320552453").child('lastname').val();
email = data.child("4320552453").child('email').val();

$('#image').html('<img src="'   picture   '">')
$('#image').append(firstName)
$('#image').append(lastName)
$('#image').append(email)
  
 my end goal is something like
div 1 userid 1 -> all information1 for each user
div 2 userid 2 -> all information  for each user
div 3 userid  3-> all information  for each user
  

Ответ №1:

Если вы хотите перебрать все дочерние узлы в DataSnapshot , используйте DataSnapshot.forEach . Итак:

 database.ref().once('value', function (snapshot) {
  snapshot.forEach(function(child) {
    picture = child.child('picture').val();
    firstName = child.child('firstname').val();
    lastName = child.child('lastname').val();
    email = child.child('email').val();
    console.log(snapshot.key, email, firstName, lastName, picture);
  });
});
  

Комментарии:

1. Ты ангел, большое тебе спасибо. Есть ли какой-либо способ также указать идентификатор пользователя (или случайную строку, которую я вызываю userid)?

2. Конечно. Это называется snapshot.key . Я настоятельно рекомендую сохранить справочную документацию для DataSnapshot удобного использования для такого рода вещей: firebase.google.com/docs/reference/js /…