0

我在浏览器客户端和服务器端 NodeJS 上都使用 Firebase,以使网站 SEO 友好。因此,我在服务器端呈现项目列表,然后在客户端监听新的更新。

我找不到合适的链接,因为on('child_added')它会从特定 ID 开始收听 child_added 通知。

使用 endAt() 或 startAt(),这些函数是包含端点的,因此它们也返回最后一个子函数。

其他一些答案似乎表明使用endAt().limit(1),但这似乎有缺陷,因为在间隙之间可能有多个 child_add 。也endAt()包含在内,因此endAt().limit(1)仍然返回最后添加的孩子。

4

2 回答 2

1

您可以执行 a once('value'),然后.on('child_added')在回调中启动侦听once()器,并将新子项的名称与最初在once()调用中读取的名称进行比较。

虽然这有点难看,并且需要在内存中保留一堆孩子的名字。如果您更详细地描述您的用例,它可能会帮助人们想到更好的解决方案。您的网站是如何设计的,以便您只需要加载未来添加的内容,并且不能丢弃查询端点?

于 2013-10-31T07:02:06.730 回答
0

然后,您可以push()自己的虚拟数据,然后startAt(null, the-name-of-the-dummy).on('child_added')丢弃第一个结果。

于 2013-10-31T07:06:33.437 回答