【问题标题】:Acess node firebase and check value访问节点firebase并检查值
【发布时间】:2017-03-06 21:45:45
【问题描述】:

我想访问节点“状态”并检查:如果 false 写入数据,如果 true 返回错误警报。

我使用了代码:

var reference_value_of_counter = firebase.database().ref('contador/valor');

var reference_to_increment_counter = firebase.database().ref('contador/valor');

var reference_status_attendance = firebase.database().ref('agendamentos/primeiro-horario/status');

var reference_to_data_register = firebase.database().ref('agendamentos/primeiro-horario/');


if (reference_status_attendance.once('value', snap => snap.val() == false)) {

    reference_value_of_counter.once('value', snap => reference_to_increment_counter.set(snap.val()+1));

    reference_to_data_register.update({nome : 'isaac', sobrenome : "menezes", status: true});

}

else {
    alert("sorry");
}

【问题讨论】:

    标签: javascript arrays firebase firebase-realtime-database


    【解决方案1】:

    Firebase Documentation

    var reference_to_data_register = firebase.database().ref('agendamentos/primeiro-horario/');
    
    reference_to_data_register.once('value')
      .then(function(dataSnapshot) {
        if(dataSnapshot.val().status){
            //do this if status is true
        } else {
            // do this is status is false
        }
      });
    

    【讨论】:

    • 我认为你应该检查dataSnapshot.val().status,因为 DataSnapshot 类没有 status 属性。
    【解决方案2】:

    if (reference_status_attendance.once('value', snap => snap.val() == false))

    这种说法是不正确的。 once 函数不会返回您从回调中返回的值。您需要访问该值并在回调中执行 if/else。我没有测试过下面的代码,但它应该可以工作,或者至少让你知道需要做什么。

    reference_status_attendance.once('value', snap => { 
      if(snap.val() == false) {
    
        reference_value_of_counter.once('value', snap => reference_to_increment_counter.set(snap.val()+1));
    
        reference_to_data_register.update({nome : 'isaac', sobrenome : "menezes", status: true});
    
      }
    
      else {
        alert("sorry");
      }
    })
    

    【讨论】:

    • 你能告诉我我可以研究什么我可以更正确地操作firebase中的数据吗?我喜欢你的建议,我测试过并且效果很好,但我想更深入地研究这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 2017-04-30
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多