我在如何处理Firebase v3中的事务方面有些挣扎。
我尝试了以下方法:
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;
};
因此,我尝试更新位置
childRef
处的值。当我像我一样尝试时,它不会返回任何承诺。基本上没有任何反应。我还尝试了Firebase docs中的示例,但是对于
post
和success
都始终返回null。 最佳答案
好,知道了。您基本上可以设置一个初始值,并使用--
减小它。
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;
};