有没有办法知道Child Added被称为什么情况?特别是页面加载与其他事件

Itu*_*mac 2 firebase

这是我的情景.当通过浏览器事件帖子页面加载添加子项时,我想在标题中指出它.但是在页面加载时,也会调用添加的子项.

如何区分添加的初始子项与实际添加新条目的子项.

蒂姆,谢谢

And*_*Lee 7

Firebase非常故意不将"初始"数据与"新"数据区分开来.在大多数情况下,这允许更简单的开发,因为您只需要为数据编写一组逻辑,而不是处理初始数据案例和新数据案例.

在这种情况下,我可以看到你希望如何区分.我不确定你到底在做什么,但是如果你正在构建一个聊天应用程序,你可能想根据最新消息的时间戳来刷新标题,而不是它是否是"新"消息.如果在加载页面之前稍微发送消息,这将允许标题在页面加载时闪烁,这可能是期望的.在其他一些情况下,您可能实际上想要为未读数据刷新标题,并且您可能需要考虑将子项标记为"已读"并仅为显示没有"读取"位的子项闪烁标题.这将允许事物在页面刷新之间无缝地工作.

如果您绝对需要知道"新"数据何时显示,您可以尝试使用"一次"和"值"事件类型来获取数据,然后使用"on"和startAt查询以及"child_added"事件类型之后显示新数据.它看起来像这样:

var data = new Firebase(...);
data.once("value", function(d) {
  //TODO: display initial state...

  data.startAt(null, <last id in snapshot>).on("child_added", function(newMessSnapshot) {
    //TODO: render new child and flash title bar.
  }
}
Run Code Online (Sandbox Code Playgroud)

或者如果您想以非常简单的方式进行操作,您可以设置一个计时器,以便在页面加载的前N秒内收到的任何消息都不会闪烁标题.

希望有所帮助!