2017-03-07 4 views
1

Ich habe ein wenig mit der Handhabung von Transaktionen in Firebase v3 zu kämpfen.Firebase v3 Transaktionen und Versprechen

Ich habe versucht, die folgenden:

function fbTransaction(childRef) { 
    var qTrans = Q.defer(); 

    firebase.database().ref(childRef).transaction() 
    .then(function(success){ 
     qTrans.resolve(success); 
    }).catch(function(error){ 
     qTrans.reject(error); 
    }); 

    return qTrans.promise; 
}; 

So versuche ich childRef den Wert an der Stelle zu aktualisieren. Wenn ich es wie ich versuche, gibt es kein Versprechen. Grundsätzlich passiert nichts.

Ich habe auch versucht, das Beispiel aus der Firebase docs, aber das bleibt Null für beide post und success.

Antwort

2

Okay fand es heraus. Sie können grundsätzlich einen Anfangswert festlegen und ihn mit -- verringern.

function fbTransaction(childRef) { 
    var qTrans = Q.defer(); 
    firebase.database().ref(childRef).transaction(function(post) { 
     if (post != null) { 
      post++; 
     } else { 
      post = 1; 
     } 
     return post; 
    }).then(function(success){ 
     qTrans.resolve(); 
    }).catch(function(error){ 
     qTrans.reject(error); 
    }); 
    return qTrans.promise; 
}; 
Verwandte Themen