Firebase数据库onCreate不会更新所有记录

时间:2019-01-23 14:38:36

标签: javascript firebase firebase-realtime-database google-cloud-functions firebase-admin

我是云功能的新手,但我有一个无法理解的大障碍。我创建了<!doctype html> <html lang="en"> <head> <!-- link to css --> <link rel="stylesheet" href="style.css"> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> <title>Notebook</title> </head> <body> <div class="container min-vh-100 d-flex flex-column" id="container"> <!-- header --> <div class="row align-items-start bg-info" id="header"> <div class="col text-center"> <button type="button" class="btn" id="cancel">&#10007;</button> <button type="button" class="btn" id="back">&#8617;</button> </div> <div class="col text-center"> <h4 id="title">Notebook</h4> </div> <div class="col text-center"> <button type="button" class="btn" id="submit">&#10004;</button> </div> </div> <br /> <!-- Screen list show --> <div class="row" id="screen"> <div class="col-12"> <ul id="list"> </ul> </div> </div> <!-- Note show --> <div class="row" id="fullnote"> <div class="col-12"> <p id="text"> </p> </div> </div> <!-- input for note title --> <div class="row" id="input-title"> <div class="col"> <input type="text" maxlength="20" class="form-control" placeholder="Note title" value="" id="note-title"> </div> </div> <br /> <!-- textarea for writing note --> <div class="row flex-grow-1"> <div class="col" id="main"> <textarea class="form-control textarea h-100" value="" placeholder="write note" id="note"></textarea> </div> </div> <!-- footer --> <div class="row align-items-end" id="footer"> <div class="col d-flex justify-content-start" style="padding: 10px; padding-left: 25px;"> <button id="add" class="btn btn-info rounded-circle"><h4 style="padding: 0px; margin: 0px;">&#x2b;</h4></button> <button id="delete" class="btn btn-info rounded-circle">&#128465;</button> </div> </div> </div> <script src="script.js"></script> </body> </html>处理程序,它会在每个新项目上正确触发。如果我将多个项目放入数据库中,并且多次调用了我的回调,则有时onCreate不会更新项目。

这是我的代码:

snap.ref.update

在这一点上,实际上有50-75%的项目已更新,但其他..我不知道为什么,但是它们有旧数据。每个函数返回200(我在日志中检查了)。

Firebase存储是否有限制?或者我缺少什么?

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是您的函数会更新它正在侦听的引用,因此,如果该位置上没有img1或img2子代,则会再次触发该函数本身。