mFirestore.collection("notifications").orderBy("timestamp",Query.Direction.DESCENDING).addSnapshotListener(new EventListener<QuerySnapshot>(){
@Override
public void onEvent(@javax.annotation.Nullable QuerySnapshot documentSnapshots,@javax.annotation.Nullable FirebaseFirestoreException e){
if(e!=null){
Log.d(TAG,"Error : "+e.getMessage());
}
assert documentSnapshots!=null;
for(DocumentChange doc:documentSnapshots.getDocumentChanges()){
if(doc.getType()==DocumentChange.Type.ADDED){
String doc_id=doc.getDocument().getId();
NotificationModel Notifications=doc.getDocument().toObject(NotificationModel.class).withDocId(doc_id);
allNotifications.add(Notifications);
notificationAdapter.notifyDataSetChanged();
}
}
}
});
我正在尝试在Firestore集合中添加新文档时将其添加到0位置。但新项目会在最后一个位置添加,而不是0个位置。
答案 0 :(得分:0)
firestore集合中的文档不是存储为数组,而是以地图方式存储,这意味着您不能在特定位置插入文档
答案 1 :(得分:0)
要解决此问题,请更改以下代码行
allNotifications.add(Notifications);
到
allNotifications.add(0, Notifications);
根据有关ArrayList的add()方法的官方文档:
将指定元素插入此列表中的指定位置。
答案 2 :(得分:0)
我通过更改此allNotifications.add(Notifications);
对此allNotifications.add(doc.getNewIndex(),Notifications);