|
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