|
9 | 9 | import com.google.firebase.firestore.FirebaseFirestoreException;
|
10 | 10 | import com.google.firebase.firestore.ListenerRegistration;
|
11 | 11 | import com.google.firebase.firestore.Query;
|
| 12 | +import com.google.firebase.firestore.QueryDocumentSnapshot; |
12 | 13 | import com.google.firebase.firestore.QueryListenOptions;
|
13 | 14 | import com.google.firebase.firestore.QuerySnapshot;
|
14 | 15 |
|
@@ -95,30 +96,32 @@ public void onEvent(QuerySnapshot snapshots, FirebaseFirestoreException e) {
|
95 | 96 | }
|
96 | 97 |
|
97 | 98 | private void onDocumentAdded(DocumentChange change) {
|
98 |
| - mSnapshots.add(change.getNewIndex(), change.getDocument()); |
99 |
| - notifyOnChildChanged(ChangeEventType.ADDED, change.getDocument(), change.getNewIndex(), -1); |
| 99 | + QueryDocumentSnapshot snapshot = change.getDocument(); |
| 100 | + mSnapshots.add(change.getNewIndex(), snapshot); |
| 101 | + notifyOnChildChanged(ChangeEventType.ADDED, snapshot, change.getNewIndex(), -1); |
100 | 102 | }
|
101 | 103 |
|
102 | 104 | private void onDocumentRemoved(DocumentChange change) {
|
103 | 105 | mSnapshots.remove(change.getOldIndex());
|
104 |
| - notifyOnChildChanged( |
105 |
| - ChangeEventType.REMOVED, change.getDocument(), -1, change.getOldIndex()); |
| 106 | + QueryDocumentSnapshot snapshot = change.getDocument(); |
| 107 | + notifyOnChildChanged(ChangeEventType.REMOVED, snapshot, -1, change.getOldIndex()); |
106 | 108 | }
|
107 | 109 |
|
108 | 110 | private void onDocumentModified(DocumentChange change) {
|
| 111 | + QueryDocumentSnapshot snapshot = change.getDocument(); |
109 | 112 | if (change.getOldIndex() == change.getNewIndex()) {
|
110 | 113 | // Document modified only
|
111 |
| - mSnapshots.set(change.getNewIndex(), change.getDocument()); |
112 |
| - notifyOnChildChanged(ChangeEventType.CHANGED, change.getDocument(), |
| 114 | + mSnapshots.set(change.getNewIndex(), snapshot); |
| 115 | + notifyOnChildChanged(ChangeEventType.CHANGED, snapshot, |
113 | 116 | change.getNewIndex(), change.getNewIndex());
|
114 | 117 | } else {
|
115 | 118 | // Document moved and possibly also modified
|
116 | 119 | mSnapshots.remove(change.getOldIndex());
|
117 |
| - mSnapshots.add(change.getNewIndex(), change.getDocument()); |
| 120 | + mSnapshots.add(change.getNewIndex(), snapshot); |
118 | 121 |
|
119 |
| - notifyOnChildChanged(ChangeEventType.MOVED, change.getDocument(), |
| 122 | + notifyOnChildChanged(ChangeEventType.MOVED, snapshot, |
120 | 123 | change.getNewIndex(), change.getOldIndex());
|
121 |
| - notifyOnChildChanged(ChangeEventType.CHANGED, change.getDocument(), |
| 124 | + notifyOnChildChanged(ChangeEventType.CHANGED, snapshot, |
122 | 125 | change.getNewIndex(), change.getNewIndex());
|
123 | 126 | }
|
124 | 127 | }
|
|
0 commit comments