2017-12-25 4 views
0

anzuzeigen Ich bin Training zeige den aktuellen Wert von meinem Firebase-Datenbank auf meinem HTML-Zähler. das Problem ist, dass ich nur die aktuellen Klicks sehen und nicht die Gesamtzahl der Klicks in der Konsole kann ich den Datenbankwert + 1Wie Firebase val auf einem html wie Zähler mit Javascript

 var bunnyData = null; 
 
    function thumbsUpBtn(val) { 
 

 
      var count = document.getElementById('like').value; 
 
      var new_count = parseInt(count ,10) + val; 
 
      
 
      if (new_count < 0) { 
 
       new_count = 0; 
 
      } 
 
     
 
      
 
      var videosList = firebase.database().ref().child('videos'); 
 
     
 
      videosList.on("value", function(snapshot) { 
 
        var allVideos = snapshot.val(); 
 
        bunnyData = allVideos.bunny;      
 
        console.log(bunnyData.likeCount); 
 
        WriteStatsToPage(); 
 

 
       }); 
 
     
 
       onclick    
 
       videosList.child("bunny").set({ 
 
        likeCount : bunnyData.likeCount+1, 
 
        dislikeCount : bunnyData.dislikeCount, 
 
        viewsCount : 100 
 

 
       }); 
 
     
 
     function WriteStatsToPage(){ 
 
        $("likeNUmber").html[bunnyData.likeCount]; 
 
     } 
 

 
      document.getElementById('like').value = new_count ; 
 
      return new_count ; 
 
     }
     <button id="thumbsUp" onClick="thumbsUpBtn(1)"> 
 
         <img class="likeImg" src="Like.png" > 
 
         <input id="like" value="0" ></button>

Antwort

0

Transactions and Batched Writes

Transaktionen sehen sind nützlich, wenn Sie den Wert eines Feldes basierend auf auf seinem aktuellen Wert oder dem Wert eines anderen Feldes aktualisieren möchten. Sie könnten einen Zähler erhöhen, indem Sie eine Transaktion erstellen, die den aktuellen Wert des Zählers liest, den Wert erhöht und den neuen Wert in Cloud Firestore schreibt.

Eine Transaktion besteht aus einer beliebigen Anzahl von get() - Operationen gefolgt von beliebig vielen Schreiboperationen wie set(), update() oder delete(). Im Fall einer gleichzeitigen Bearbeitung führt Cloud Firestore die gesamte Transaktion erneut aus. Wenn eine Transaktion beispielsweise Dokumente liest und ein anderer Client eines dieser Dokumente ändert, versucht Cloud Firestore die Transaktion erneut. Diese Funktion stellt sicher, dass die Transaktion auf aktuellen und konsistenten Daten ausgeführt wird.

// Create a reference to the SF doc. 
var sfDocRef = db.collection("cities").doc("SF"); 

// Uncomment to initialize the doc. 
// sfDocRef.set({ population: 0 }); 

return db.runTransaction(function(transaction) { 
    // This code may get re-run multiple times if there are conflicts. 
    return transaction.get(sfDocRef).then(function(sfDoc) { 
     var newPopulation = sfDoc.data().population + 1; 
     transaction.update(sfDocRef, { population: newPopulation }); 
    }); 
}).then(function() { 
    console.log("Transaction successfully committed!"); 
}).catch(function(error) { 
    console.log("Transaction failed: ", error); 
}); 
Verwandte Themen