Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

199
Visualizações
How to get a certain element from the Firebase?

I need it to be displayed on the screen after adding a bank to the database. Now the problem is that after adding a bank to the database, all banks from the database are displayed, and even those that have already been added - they are drawn again. How can I draw on the screen one bank that I have added?

// add bank

function sendBankData() {
  db.collection("banks").add({
    bankName: bankName.value,
    interestRate: interestRate.value,
    maximumLoan: maximumLoan.value,
    minimumDownPayment: minimumDownPayment.value,
    loanTerm: loanTerm.value,
  });
  successfulPopUp();
}

// get bank

function getBanks() {
  db.collection("banks").onSnapshot((snapshot) => {
    let banks = [];
    snapshot.docs.forEach((doc) => {
      banks.push({
        id: doc.id,
        ...doc.data(),
      });
    });
    generateBanks(banks);
  });
}

function generateBanks(banks) {
  banks.forEach((bank) => {
    bankItems.innerHTML +=
      `<div class="bank-item"> 
    <img src="./img/edit-icon1.png" alt="">
  <div class="bank-text">
   Bank name: <span class="bank-name">` +
      bank.bankName +
      `</span>
  </div>
  <div class="bank-text">
  Interest rate: <span class="bank-interest-rate">` +
      bank.interestRate +
      `</span>
  </div>
  <div class="bank-text">
  Maximum loan: <span class="bank-maximum-loan">` +
      bank.loanTerm +
      `</span>
  </div>
  <div class="bank-text">
  Minimum down payment: <span class="bank-minimum-down-payment">` +
      bank.maximumLoan +
      `</span>
  </div>
  <div class="bank-text">
  Loan term: <span class="bank-loan-term">` +
      bank.minimumDownPayment +
      `</span>
  </div>
  </div>
  `;
  });
}

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

You can listen on document changes and then rerender your banks:

function getBanks() {
  db.collection("banks").onSnapshot((snapshot) => {
    const banks = [];

    if (banks.length === 0) {
      // Your first loop for existing banks
      snapshot.docs.forEach((doc) => {
        banks.push({
          id: doc.id,
          ...doc.data(),
        });
      });
      generateBanks(banks);
    }

    // Now you can listen for changes
    snapshot.docChanges().forEach((change) => {
      const bank = {
        id: change.doc.id,
        ...change.doc.data(),
      };

      // Here you can add your new bank and rerender
      if (change.type === "added") {
        console.log("Added bank: ", bank);
         banks.push(bank );
         generateBanks([bank ]);
      }

      // You can also react on modified and removed objects
      if (change.type === "modified") {
        console.log("Modified bank: ", bank );
      }
      if (change.type === "removed") {
        console.log("Removed bank: ", bank );
      }
    });
  });
}

For further reading check the docs.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda