2015-07-15 16 views
7

Ho un record Firebase "ricerche: 0" per ogni utente. In alcuni eventi, vorrei aggiungere 1 a ciò che conta attualmente. Sono arrivato a questo punto, ma per qualche motivo, non funziona:Come incrementare un record in Firebase?

du.fbAddSearchCount = function() { 
    var usr = new Firebase(firebase_url + "https://stackoverflow.com/users/" + user_uid); 

    usr.on("value", function(snapshot) { 
     user = snapshot.val(); 

     var usersRef = ref.child("users"); 

     var fbUser = usersRef.child(user_uid); 
     fbUser.update({ 
      searches: user.searches + 1 
     }); 
    } 
} 

Qualsiasi aiuto per farlo funzionare?

Grazie.

+0

ciò che è user.searches? – Chrillewoodz

+0

Quello sarebbe il valore che è attualmente nel record "ricerche" dell'utente in base di fuoco. Ad esempio, se è 5, mi piacerebbe che questo script aggiornasse quello per leggere 6. – user1661677

+1

Quindi cosa non funziona? Devi dare qualche dettaglio in più. Aggiorna il record ma non con il nuovo numero? – Chrillewoodz

risposta

14

È possibile utilizzare la transazione

var databaseRef = firebase.database().ref('users').child(user_uid).child('searches'); 

databaseRef.transaction(function(searches) { 
    if (searches) { 
    searches = searches + 1; 
    } 
    return searches; 
}); 
+15

Il tuo codice non funzionerà quando 'ricerche = 0'. Puoi invece fare questo: 'return (ricerche || 0) + 1;' –

0
ref.transection(function(queue_length) { 
    if(queue_length|| (queue_length === 0)) 
    { 
     queue_length++; 
    } 
    return queue_length; 

}) 

È possibile utilizzare come questo;)

+1

fornire una spiegazione alla tua risposta –

+0

più codice che compila e non ha errori di battitura! – ubienewbie

Problemi correlati