Firebase更新方法在不同节点上多次调用时不会更新值,但会成功返回OnComplete

时间:2018-07-29 23:42:53

标签: javascript firebase firebase-realtime-database

我正在尝试更新“我的应用程序中的订单”状态。当页面刷新并且我尝试更新时,它成功更新。但是,当我尝试更新其他订单时,更新方法在OnComplete方法上返回成功,但不更新实时数据库上的数据。 它使我头疼,我已经尝试了所有可能的解决方案,但没有任何效果。

var dbRef = firebase.database();
var requestsRef = dbRef.ref('requests');
var onComplete = function (error) {
    if (error) {
        console.log('Synchronization failed');
    } else {
        console.log('Synchronization succeeded');
    }
};

function sendToProcessing(e) {
    var confirmation = confirm("Really Wanna Send To Processing?");
    if (confirmation) {
        var key = parseInt($(e).data("key"));
        requestsRef.child(key).update({
            'status': "Processing"
        }, onComplete);
        $('#orderDetailsModel').modal("hide")

    } else {
        return false;
    }
}

HTML部分:

<button type="button" class="btn m-2 btn-outline-success " onclick="sendToProcessing(this)" id="btn-processing"><i class="fas fa-utensils"></i></button>

图像显示: enter image description here

单击“眼睛”按钮时的图像模型 enter image description here

1 个答案:

答案 0 :(得分:0)

您正在尝试使用$(e).data(“ Key”)检索密钥。在您的情况下,e是按钮元素。 button元素没有任何称为data-key的属性。

尝试如下所示将密钥添加到按钮。

<button type="button" class="btn m-2 btn-outline-success " data-key="keyvalue "onclick="sendToProcessing(this)" id="btn-processing"><i class="fas fa-utensils"></i></button>

还尝试调试sendToProcessing方法,并尝试console.log(key)可能为空。