Acess节点firebase和检查值

时间:2016-10-25 01:10:50

标签: javascript arrays firebase firebase-realtime-database

enter image description here

我想访问节点“status”并检查:如果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");
}

2 个答案:

答案 0 :(得分:1)

  

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

答案 1 :(得分:0)

请参阅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
    }
  });