- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果我的 firebase 引用中存储了一个包含 50,000 个项目的列表,并且自上次客户端在线和监听以来已将 5 个项目添加到该列表中,我必须使用哪个回调以便仅触发它对于已添加的 5 个新项目?
我使用 Firebase.getDefaultConfig().setPersistenceEnabled(true);
在我的客户端上启用了离线持久性。我有一个监听器绑定(bind)到一个监听添加到引用中的 child 的 Activity 。每次创建 Activity 时,都会为引用中的所有数据调用 onChildAdded
。是否可以让 onChildAdded
和 onChildRemoved
仅针对我的本地缓存和 firebase 服务器上的数据之间的“差异”调用?或者,如果这不可能,那么在 firebase 的最新更新之后仅触发那些 onChild*
回调?
最佳答案
Everytime the activity is created onChildAdded is called for all the data in the reference. Is it possible to make onChildAdded and onChildRemoved be called only for "diff" between my local cache and the data on the firebase server?
不,这是不可能的。来自documentation on event types :
child_added is triggered once for each existing child and then again every time a new child is added to the specified path
现在回到您最初的问题:
which callback would I have to use such that it is only triggered for the 5 new items that have been added?
那就是:
ref.limitToLast(5)...
但这需要您知道自上次收听以来有多少项目被添加到列表中。
更常见的解决方案是跟踪您已经看到的最后一个项目,然后使用 startAt()
从您上次所在的位置开始触发事件:
ref.orderByKey().startAt("-Ksakjhds32139")...
然后您将保留在共享首选项中看到的最后一个 key 。
同样,您可以保留上次 Activity 可见的时间:
long lastActive = new Date().getTime();
然后为每个项目添加带有 Firebase.ServerValue.TIMESTAMP
的时间戳
,然后:
ref.orderByChild("timetstamp").startAt(lastActive+1)...
关于android - Firebase onChildAdded 获取新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745248/
我有一个问题,就是 onChildAdded() 被无缘无故地调用,并且当添加某些东西时它确实工作正常 这是监听器: comment = new Firebase(MY_URL).child(
我想在我的 firebase 数据库中获取“服装”引用下的所有 firebase 节点。为此,我将 ChildEventListener 附加到引用,并在 onChildAdded 回调中将 Clot
我的代码有问题,不知道是不是因为onChildAdded或者RecyclerView才搞定的 简单地我想在 RecyclerView 上显示消息收件箱,其中包含我从其他用户收到的所有消息,每条消息都包
我正在使用 Firebase 开发一个实时检索数据的应用程序。我有 2 个设备,并连接到 Firebase,当第一个设备向 Firebase 添加一些数据时,第二个设备的工作是获取这些数据。但它始终为
如果我的 firebase 引用中存储了一个包含 50,000 个项目的列表,并且自上次客户端在线和监听以来已将 5 个项目添加到该列表中,我必须使用哪个回调以便仅触发它对于已添加的 5 个新项目?
我正在 SearchTextView OnQueryListener 中调用 OnChildAdded 方法,该方法使用 OnChildAdded 方法在对话框中搜索和显示记录。但是当我运行代码时,O
public class DataService { private static DataService ourInstance = new DataService(); priva
我在我的项目中使用 Database Firebase。我对 onChildAdded 非常困惑。我有这样的代码: mEventListener = new ChildEventListener()
如何处理 firebase android 中的 onChildAdded 事件。下面是我的数据库json结构 { message{ "id"=10;
假设我有一个 Firebase 数据库位置 /foo,现在它下面有五个 child 。我预计在接下来的几分钟内会添加更多的 child 。我在这个数据库引用上有一个子事件监听器,当我按预期添加监听器时
我正在尝试执行一些基本的 Firebase 操作,但是 childEventListener 的行为不符合预期。 我有一个餐厅订单列表,我使用 Firebase 查询和 ChildEventListe
我将 firebase ChildEventListner 用于聊天应用程序。在这个应用程序中,我在 onChildAdded 中传递条件,即如果消息 senderId 添加的新 child 比在 A
firestore是否支持(添加文档监听器),就像firebase实时 firebase real time 有这样的方法 public void onChildAdded(DataSnapshot
考虑以下代码示例: // Get a reference to our posts Firebase ref = new Firebase("https://docs-examples.firebas
我是 Firebase 的新手,正在做一个简单的项目。我有一种方法可以从 Firebase 获取教师列表并将他们的电子邮件添加到 ArrayList 并返回。 public ArrayList get
这是显示输出的控制台屏幕截图,即添加到其中一个用户的消息目录中的子项。 另外,必须注意的是,我显示了控制台的非常短的部分,因为控制台为每条消息显示类似的输出。如果需要更多屏幕截图来澄清,请告诉我,我会
每当我使用 updateChildren() 方法时,我的 onChildAdded() 方法似乎都不起作用。它与 push().setValue() 方法配合使用。这两种方法都可以将数据发送到 Fi
我正在按照以下代码向 Firebase 添加新数据 updateChildren(childUpdates, new DatabaseReference.CompletionListener() {
我是一名优秀的程序员,十分优秀!