Javascript 如何检查表单提交时firebase推送事件是否成功

Javascript 如何检查表单提交时firebase推送事件是否成功,javascript,firebase,polymer-1.0,firebase-realtime-database,Javascript,Firebase,Polymer 1.0,Firebase Realtime Database,这是我的聚合表单和javascript。它推得很好。我想做的是检查它是否成功,我将隐藏表单并显示一些确认文本或将用户重定向到另一个页面 那么,如何检查firebase推送是否成功 <form is="iron-form" method="get" action="firebaseURL/events" id="eventsDemo"> <paper-input name="name" label="Name" required auto-validate></p

这是我的聚合表单和javascript。它推得很好。我想做的是检查它是否成功,我将隐藏表单并显示一些确认文本或将用户重定向到另一个页面

那么,如何检查firebase推送是否成功

<form is="iron-form" method="get" action="firebaseURL/events" id="eventsDemo">
  <paper-input name="name" label="Name" required auto-validate></paper-input>
  <paper-input name="password" label="Password" type="password" required auto-validate></paper-input>
  <paper-checkbox name="read" required>You must check this box</paper-checkbox><br>
  <paper-button raised onclick="_delayedSubmit(event)" disabled id="eventsDemoSubmit">
    <paper-spinner id="spinner" hidden></paper-spinner>Submit</paper-button>
  <div class="output"></div>
</form>   
<script>
function _delayedSubmit(event) {
    event.preventDefault();
    spinner.active = true;
    spinner.hidden = false;
    eventsDemoSubmit.disabled = true;
    // Simulate a slow server response.
    setTimeout(function() {
      //Polymer.dom(event).localTarget.parentElement.submit();
      var firebase = new Firebase(eventsDemo.getAttribute('action'));
      firebase.push(eventsDemo.serialize());
    }, 100);
  }
</script>

您必须选中此框
提交 函数_delayedSubmit(事件){ event.preventDefault(); spinner.active=true; spinner.hidden=false; eventsDemoSubmit.disabled=true; //模拟缓慢的服务器响应。 setTimeout(函数(){ //Polymer.dom(event.localTarget.parentElement.submit(); var firebase=newfirebase(eventsDemo.getAttribute('action'); firebase.push(eventsDemo.serialize()); }, 100); }
Firebase中的每个写入方法都可以采用可选的完成侦听器,当写入操作在服务器上完成时,该侦听器将被称为完成侦听器。从:

如果您想知道数据何时提交,可以添加一个完成回调。
set()
update()
都接受一个可选的完成回调,该回调在写入提交到数据库时调用。如果由于某种原因调用不成功,回调将被传递一个错误对象,指示失败发生的原因


我建议你从头读到尾。它包含了许多有用的小道消息,可以为您(和我们)节省很多时间。

谢谢Frank!以下是使用箭头函数修改的@Frank answer for ES6版本:

dataRef.set("I'm writing data", error => {
  if (error) {
    alert("Data could not be saved." + error);
  } else {
    alert("Data saved successfully.");
  }
});

这里
dataRef
包含什么?我无法获取登录方法成功事件,因为我可以在
javascript
web中添加带有
createUserWithEmailAndPassword
的用户。
dataRef.set("I'm writing data", error => {
  if (error) {
    alert("Data could not be saved." + error);
  } else {
    alert("Data saved successfully.");
  }
});