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

Lea*_*day 5 javascript firebase firebase-realtime-database polymer-1.0

这是我的聚合物形式和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>
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 9

Firebase中的每个写入方法都可以使用一个可选的完成侦听器,该侦听器将在服务器上完成写入操作.从完成回调文档:

如果您想知道数据何时提交,可以添加完成回调.这两个set()update()一个可选的完成回调时写操作已经提交到数据库时调用.如果由于某种原因调用失败,则回调将传递一个错误对象,指示失败的原因.

dataRef.set("I'm writing data", function(error) {
  if (error) {
    alert("Data could not be saved." + error);
  } else {
    alert("Data saved successfully.");
  }
});
Run Code Online (Sandbox Code Playgroud)

我建议端到端阅读面向Web程序员Firebase指南.它包含许多有用的花絮,可以为您(和我们)节省很多时间.