Javascript 一次就是多次开火

Javascript 一次就是多次开火,javascript,firebase,firebase-realtime-database,electron,Javascript,Firebase,Firebase Realtime Database,Electron,我的审判警报持续发射4到6次不知道为什么。我正在使用firebase和Electron,但不确定我做错了什么。我的试用警报功能应该只启动一次 userRef .orderByChild("hardware_id") .equalTo(id) .once("child_added", function (snapshot) { // Check

我的审判警报持续发射4到6次不知道为什么。我正在使用firebase和Electron,但不确定我做错了什么。我的试用警报功能应该只启动一次

userRef
              .orderByChild("hardware_id")
              .equalTo(id)
              .once("child_added", function (snapshot) {
                // Check if user is on trial
                if (snapshot.val().status == "trial") {
                  if (
                    snapshot.val().last_session - snapshot.val().created >
                    604800 * 1000
                  ) {
                    // Trial Expired do something
                    PurchaseApp(
                      "Your trial has expired",
                      "To continue using ELMC Midi you must purchase an activation license",
                      true
                    );
                  } else {
                    // give access to software
                    var statusUpdate = {
                      last_session: firebase.database.ServerValue.TIMESTAMP,
                    };
                    database.ref("Accounts/" + id).update(statusUpdate);

                    //Trial alert
                    TrialAlert(snapshot.val().created);
                    // Access application
                    MainAppWindow(
                      "snap_log.val().message",
                      snapshot.val().status
                    );
                  }
                }

我实际上也不确定这是否是预期的行为,但您可以通过向查询添加一个限制来阻止它并节省一些带宽:

userRef
  .orderByChild("hardware_id")
  .equalTo(id)
  .limitToFirst(1)
  .once("child_added", function (snapshot) {

嘿,杰瑞。你有什么收获吗?我试图在下面给出一个答案。您是否有机会检查并尝试解决方案?如果我的答案有用,请单击向上投票按钮(▲) 如果它回答了您的问题,请单击复选标记(✓) 接受它。这样其他人就知道你已经得到了(足够)的帮助。也看到我尝试过它,但由于某些原因它没有帮助。我使用它与Electron NodeJS。我不知道为什么会发生“它没有帮助”很难帮上忙。你能编辑你的问题以显示你是如何实现我建议的更改的,并添加一些日志以显示仍然存在的问题吗?