Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase v3事务和承诺_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript Firebase v3事务和承诺

Javascript Firebase v3事务和承诺,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在为如何在Firebase v3中处理事务而挣扎 我尝试了以下方法: function fbTransaction(childRef) { var qTrans = Q.defer(); firebase.database().ref(childRef).transaction() .then(function(success){ qTrans.resolve(success); }).catch(function(error){

我正在为如何在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
处的值。当我像我一样尝试它时,它不会回报任何承诺。基本上什么也没发生


我还尝试了来自的示例,但对于
post
success
,好的,我找到了答案。基本上,您可以设置初始值并使用
--
减小它

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;
};