获取 Firebase 中事务操作的当前状态



我创建了一个脚本,用于使用 firebase 执行请求。由于我想避免同时对一个关系进行多个查询,因此我使用代码中所示的事务函数。首先,我获取关系的当前状态并检查它是否存在。这似乎有效。第一次是常量current = null,将执行为data2添加值的函数。

如果我第二次运行脚本,那么他会成功进入下一个函数(doSecondFunction())。不幸的是,这里没有当前数据返回给我。我希望第一次添加的 ref data2的值。但结果,我得到了null.

有没有办法在数据库的当前状态下处理事务?

const ref = firebase.database().ref('data2');
    ref.once('value', function(snapshot) {
        const current = snapshot.val();
                if(current == null){
                    console.log('FIRST');
                    addValToRefFunction();
                }else{
                    console.log('SECOND');
                    doSecondFunction(current, ref);
                }
            });
function doSecondFunction(current, ref){
                ref.transaction(function(currentData){
                    console.log(current); // result is the right value  
                    console.log(currentData); // result is null ?
                    if (currentData === current){
                        console.log('Check');
                        return;
            }         
}
无法

控制客户端在启动事务时看到的节点的当前状态。根据我的经验,第一次调用回调时,值几乎总是null,并且回调需要处理它。

另请参阅我的回答 此处 有关该过程的描述:Firebase runTransaction 不起作用 - 可变数据为空

最新更新