当我像这样向Firebase查询中添加SnapshotListener
时:
EventListener<QuerySnapshot> initialQueryListener = new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
for (DocumentChange documentChange : queryDocumentSnapshots.getDocumentChanges()) {
switch (documentChange.getType()) {
case ADDED:
Message message = documentChange.getDocument().toObject(Message.class);
mMessages.add(message);
mAdapter.notifyDataSetChanged();
}
}
}
};
从Firestore提取的每个文档(而不只是添加到集合中的文档)都被调用ADDED情况下的代码。我花了很多时间才意识到这一点。我想单独使用SnapshotListeners
:一个用于初始查询的消息,另一个仅用于获取新消息。这可能吗?