ios - 如何从 Firebase-Database 树更新最新条目?
问题描述
我想更新(或同步)我 Firebase 数据库中树的最新条目。
结构如下所示:
我只想观察最新条目,而不像“EventTypeChildAdded”那样获取所有条目。
但是,我真的很想观察最新的条目,所以每当有一个新的“最新”条目时我想调用一个函数,所以当一个孩子被添加时。
我已经找到了这段代码。
(DatabaseRef).queryOrderedByKey().queryLimitedToLast(1).observeSingleEventOfType
但这似乎并没有观察到最新的条目。
解决方案
我猜你走错路了。childadd 完全符合您的需要。再次检查文档。 https://firebase.google.com/docs/database/admin/retrieve-data#child-added
childadd 第一次获取所有列表,但仅获取刚刚添加到列表中的项目。
已添加儿童
child_added 事件通常在从数据库中检索项目列表时使用。与返回位置的全部内容的 value 不同,child_added 为每个现有的孩子触发一次,然后每次将新的孩子添加到指定的路径时再次触发。事件回调被传递一个包含新孩子数据的快照。出于排序目的,它还传递了第二个参数,其中包含前一个孩子的键。
编辑: 要将 childadded 查询限制为最后一项:
ref.queryLimited(toLast: 1).observe(.childAdded) { (snapshot) in
// parse snapshot to get the last item
推荐阅读
- python - 如何在 Django 中使用 UserCreationForm?
- oracle - Oracle HR 模式。从员工中选择最高工资
- android - Jetpack Copmose,TextField 中的居中文本
- node.js - 如何执行 node js 应用程序的代码覆盖?
- azure - Azure App 服务上的 Drupal 9 文件存储
- javascript - 如何使用 jQuery 添加 URL 参数和删除字符?
- sql - 有了数据库,如果工资每 6 个月增加一次,则根据职位的以下比率计算每个员工的当前工资
- php - Laravel 7 JSON 响应为空
- android - 如何在 android 10 或更高版本中以编程方式切换音频输出?
- c - 在公共块中有全局变量是一种未定义的行为吗?