2014-01-21 3 views
1

게임에 firebase를 사용하고 있습니다. 트랜잭션을 사용하여 작업하고 "개체에 'val'메서드가 없습니다."오류가 발생합니다.Firebase 거래 데이터

자신의 문서에는 현재 값 + 1 예만 있고 더 복잡하지 않은 것은 귀찮습니다.

게임마다 각 플레이어는 점수를 제출할 x 분을 갖습니다. 자연스럽게 일부 점수가 동시에 제출됩니다.

여기 내 스크립트

var myScore=15; 
var scoreRef = new Firebase('https://site.firebaseIO.com/arcade/games/keys/'+key+'/bonsai/'+bonsaiGameID+'/'); 
scoreRef.transaction(function(snapshot) { 
    var leaderScore=snapshot.val().score; 
    var leaderID=snapshot.val().leaderID; 
    if(myscore>leaderScore){ 
     scoreRef.push({data}) 
}) 

그래서 1 내 점수가 높은 푸시 인 경우, 현재의 점수를 얻을.

+0

무엇이 질문입니까? – dandavis

+0

객체를 고정하는 데 아무런 문제가 없음 – user3052997

+1

스냅 샷은 https://www.firebase.com/docs/transactions.html에 따른 값입니다. ".transaction ("은 ".once (" – dandavis

답변

1

트랜잭션은 스냅 샷이 아니라 오히려 값 자체를 전달합니다. 값은 프리미티브 (부울, 문자열 또는 숫자) 일 수 있지만 객체 일 수도 있습니다. 이것은 기본적으로 스냅 샷 자체가 아니라 snapshot.val()의 결과입니다.