Как добавить дочерний элемент в Firebase, а затем получить его и отобразить информацию?

#javascript #firebase-realtime-database

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

Вопрос:

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

 var salespersonRef = database.ref('Salespersons');

  $("#add-user").on("click", function(event) {
    event.preventDefault();

    name = $("#name-input").val().trim();
    cars_sold = $("#cars_sold-input").val().trim();

    salespersonRef.child({
      name: name,
      cars_sold: cars_sold,
    });


 salespersonRef.on("value", function(snapshot) {

    // Log everything that's coming out of snapshot
    console.log(snapshot.val());
    console.log(snapshot.val().name);
    console.log(snapshot.val().cars_sold);
    // Change the HTML to reflect
    $("#name-display").text(snapshot.val().name);
    $("#cars_sold-display").text(snapshot.val().cars_sold);
 

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

Ответ №1:

Этот код ничего не делает:

 salespersonRef.child({
  name: name,
  cars_sold: cars_sold,
});
 

Если вы пытаетесь добавить новый дочерний элемент в разделе salespersonRef , он должен быть:

 salespersonRef.push({
  name: name,
  cars_sold: cars_sold,
});
 

Каждый раз, когда вы можете push() , он генерирует новое уникальное местоположение по этой ссылке.

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

1. Да, это был мой текущий код, просто возился, пытаясь разобраться, спасибо, кстати. Как мне теперь отобразить уникальные ключи?

2. Вы, вероятно, ищете snapshot.forEach(...) , как показано здесь: firebase.google.com/docs/database/web /.