2015-07-15 5 views
7

У меня есть запись Firebase «ищет: 0» для каждого пользователя. В каком-то событии я хотел бы добавить 1 к текущему счету. Я получил это далеко, но по какой-то причине он не работает:Как увеличить запись в 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 
     }); 
    } 
} 

Любая помощь, чтобы получить эту работу?

спасибо.

+0

что user.searches? – Chrillewoodz

+0

Это будет значение, которое в настоящее время находится в записи «поиска» пользователя в базе огня. Например, если это 5, я бы хотел, чтобы этот скрипт обновил это, чтобы читать 6. – user1661677

+1

Так что же не работает? Должен дать более подробную информацию. Обновляет ли запись вообще, но не с новым номером? – Chrillewoodz

ответ

14

Вы можете использовать транзакции

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

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

Ваш код не будет работать, если 'search = 0'. Вы можете сделать это: 'return (search || 0) + 1;' –

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

}) 

Вы можете использовать, как это;)

+1

дать объяснение вашему ответу –

+0

плюс код, который компилирует и не имеет опечатки! – ubienewbie

 Смежные вопросы

  • Нет связанных вопросов^_^