Skip to content

Commit 5cdff78

Browse files
authored
Migrate FSTView to C++ View (#3684)
* Add C++ ViewChange * Migrate FSTViewChange to C++ ViewChange * Add C++ View * Migrate FSTView to C++ View
1 parent 6cf151f commit 5cdff78

File tree

22 files changed

+1033
-1129
lines changed

22 files changed

+1033
-1129
lines changed

Firestore/Example/Tests/API/FIRQuerySnapshotTests.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ - (void)testIncludeMetadataChanges {
9898
DocumentSet oldDocuments = DocSet(DocumentComparator::ByKey(), {doc1Old, doc2Old});
9999
DocumentSet newDocuments = DocSet(DocumentComparator::ByKey(), {doc2New, doc2New});
100100
std::vector<DocumentViewChange> documentChanges{
101-
DocumentViewChange(doc1New, DocumentViewChange::Type::kMetadata),
102-
DocumentViewChange(doc2New, DocumentViewChange::Type::kModified),
101+
DocumentViewChange(doc1New, DocumentViewChange::Type::Metadata),
102+
DocumentViewChange(doc2New, DocumentViewChange::Type::Modified),
103103
};
104104

105105
std::shared_ptr<Firestore> firestore = FSTTestFirestore().wrapped;

Firestore/Example/Tests/API/FSTAPIHelpers.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
Doc(documentKey, 1, doc,
139139
hasPendingWrites ? DocumentState::kLocalMutations : DocumentState::kSynced);
140140
newDocuments = newDocuments.insert(docToAdd);
141-
documentChanges.emplace_back(docToAdd, DocumentViewChange::Type::kAdded);
141+
documentChanges.emplace_back(docToAdd, DocumentViewChange::Type::Added);
142142
if (hasPendingWrites) {
143143
mutatedKeys = mutatedKeys.insert(testutil::Key(documentKey));
144144
}

Firestore/Example/Tests/Core/FSTQueryListenerTests.mm

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@
2020
#include <utility>
2121
#include <vector>
2222

23-
#import "Firestore/Source/Core/FSTView.h"
24-
2523
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
2624

2725
#include "Firestore/core/include/firebase/firestore/firestore_errors.h"
2826
#include "Firestore/core/src/firebase/firestore/core/event_listener.h"
2927
#include "Firestore/core/src/firebase/firestore/core/listen_options.h"
3028
#include "Firestore/core/src/firebase/firestore/core/query_listener.h"
29+
#include "Firestore/core/src/firebase/firestore/core/view.h"
3130
#include "Firestore/core/src/firebase/firestore/core/view_snapshot.h"
3231
#include "Firestore/core/src/firebase/firestore/model/document_set.h"
3332
#include "Firestore/core/src/firebase/firestore/model/types.h"
@@ -39,13 +38,16 @@
3938
#include "Firestore/core/test/firebase/firestore/testutil/testutil.h"
4039
#include "Firestore/core/test/firebase/firestore/testutil/xcgmock.h"
4140

41+
namespace core = firebase::firestore::core;
42+
4243
using firebase::firestore::Error;
4344
using firebase::firestore::core::AsyncEventListener;
4445
using firebase::firestore::core::EventListener;
4546
using firebase::firestore::core::DocumentViewChange;
4647
using firebase::firestore::core::EventListener;
4748
using firebase::firestore::core::ListenOptions;
4849
using firebase::firestore::core::QueryListener;
50+
using firebase::firestore::core::View;
4951
using firebase::firestore::core::ViewSnapshot;
5052
using firebase::firestore::model::Document;
5153
using firebase::firestore::model::DocumentKeySet;
@@ -116,14 +118,14 @@ - (void)testRaisesCollectionEvents {
116118
auto listener = QueryListener::Create(query, _includeMetadataChanges, Accumulating(&accum));
117119
auto otherListener = QueryListener::Create(query, Accumulating(&otherAccum));
118120

119-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
120-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1, doc2}, absl::nullopt).value();
121-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {doc2prime}, absl::nullopt).value();
121+
View view(query, DocumentKeySet{});
122+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1, doc2}, absl::nullopt).value();
123+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {doc2prime}, absl::nullopt).value();
122124

123-
DocumentViewChange change1{doc1, DocumentViewChange::Type::kAdded};
124-
DocumentViewChange change2{doc2, DocumentViewChange::Type::kAdded};
125-
DocumentViewChange change3{doc2prime, DocumentViewChange::Type::kModified};
126-
DocumentViewChange change4{doc2prime, DocumentViewChange::Type::kAdded};
125+
DocumentViewChange change1{doc1, DocumentViewChange::Type::Added};
126+
DocumentViewChange change2{doc2, DocumentViewChange::Type::Added};
127+
DocumentViewChange change3{doc2prime, DocumentViewChange::Type::Modified};
128+
DocumentViewChange change4{doc2prime, DocumentViewChange::Type::Added};
127129

128130
listener->OnViewSnapshot(snap1);
129131
listener->OnViewSnapshot(snap2);
@@ -164,9 +166,9 @@ - (void)testRaisesEventForEmptyCollectionAfterSync {
164166

165167
auto listener = QueryListener::Create(query, _includeMetadataChanges, Accumulating(&accum));
166168

167-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
168-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {}, absl::nullopt).value();
169-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {}, FSTTestTargetChangeMarkCurrent()).value();
169+
View view(query, DocumentKeySet{});
170+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {}, absl::nullopt).value();
171+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {}, FSTTestTargetChangeMarkCurrent()).value();
170172

171173
listener->OnViewSnapshot(snap1);
172174
XC_ASSERT_THAT(accum, IsEmpty());
@@ -190,9 +192,9 @@ - (void)testMutingAsyncListenerPreventsAllSubsequentEvents {
190192
listener->Mute();
191193
}));
192194

193-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
194-
ViewSnapshot viewSnapshot1 = FSTTestApplyChanges(view, {doc1}, absl::nullopt).value();
195-
ViewSnapshot viewSnapshot2 = FSTTestApplyChanges(view, {doc2}, absl::nullopt).value();
195+
View view(query, DocumentKeySet{});
196+
ViewSnapshot viewSnapshot1 = FSTTestApplyChanges(&view, {doc1}, absl::nullopt).value();
197+
ViewSnapshot viewSnapshot2 = FSTTestApplyChanges(&view, {doc2}, absl::nullopt).value();
196198

197199
listener->OnEvent(viewSnapshot1);
198200
listener->OnEvent(viewSnapshot2);
@@ -224,12 +226,12 @@ - (void)testDoesNotRaiseEventsForMetadataChangesUnlessSpecified {
224226
auto fullListener =
225227
QueryListener::Create(query, _includeMetadataChanges, Accumulating(&fullAccum));
226228

227-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
228-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1}, absl::nullopt).value();
229+
View view(query, DocumentKeySet{});
230+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1}, absl::nullopt).value();
229231

230232
TargetChange ackTarget = FSTTestTargetChangeAckDocuments({doc1.key()});
231-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {}, ackTarget).value();
232-
ViewSnapshot snap3 = FSTTestApplyChanges(view, {doc2}, absl::nullopt).value();
233+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {}, ackTarget).value();
234+
ViewSnapshot snap3 = FSTTestApplyChanges(&view, {doc2}, absl::nullopt).value();
233235

234236
filteredListener->OnViewSnapshot(snap1); // local event
235237
filteredListener->OnViewSnapshot(snap2); // no event
@@ -262,15 +264,15 @@ ListenOptions options(
262264
auto filteredListener = QueryListener::Create(query, Accumulating(&filteredAccum));
263265
auto fullListener = QueryListener::Create(query, options, Accumulating(&fullAccum));
264266

265-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
266-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1, doc2}, absl::nullopt).value();
267-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {doc1Prime}, absl::nullopt).value();
268-
ViewSnapshot snap3 = FSTTestApplyChanges(view, {doc3}, absl::nullopt).value();
267+
View view(query, DocumentKeySet{});
268+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1, doc2}, absl::nullopt).value();
269+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {doc1Prime}, absl::nullopt).value();
270+
ViewSnapshot snap3 = FSTTestApplyChanges(&view, {doc3}, absl::nullopt).value();
269271

270-
DocumentViewChange change1{doc1, DocumentViewChange::Type::kAdded};
271-
DocumentViewChange change2{doc2, DocumentViewChange::Type::kAdded};
272-
DocumentViewChange change3{doc1Prime, DocumentViewChange::Type::kMetadata};
273-
DocumentViewChange change4{doc3, DocumentViewChange::Type::kAdded};
272+
DocumentViewChange change1{doc1, DocumentViewChange::Type::Added};
273+
DocumentViewChange change2{doc2, DocumentViewChange::Type::Added};
274+
DocumentViewChange change3{doc1Prime, DocumentViewChange::Type::Metadata};
275+
DocumentViewChange change4{doc3, DocumentViewChange::Type::Added};
274276

275277
filteredListener->OnViewSnapshot(snap1);
276278
filteredListener->OnViewSnapshot(snap2);
@@ -306,11 +308,11 @@ ListenOptions options(
306308
/*wait_for_sync_when_online=*/false);
307309
auto fullListener = QueryListener::Create(query, options, Accumulating(&fullAccum));
308310

309-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
310-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1, doc2}, absl::nullopt).value();
311-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {doc1Prime}, absl::nullopt).value();
312-
ViewSnapshot snap3 = FSTTestApplyChanges(view, {doc3}, absl::nullopt).value();
313-
ViewSnapshot snap4 = FSTTestApplyChanges(view, {doc2Prime}, absl::nullopt).value();
311+
View view(query, DocumentKeySet{});
312+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1, doc2}, absl::nullopt).value();
313+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {doc1Prime}, absl::nullopt).value();
314+
ViewSnapshot snap3 = FSTTestApplyChanges(&view, {doc3}, absl::nullopt).value();
315+
ViewSnapshot snap4 = FSTTestApplyChanges(&view, {doc2Prime}, absl::nullopt).value();
314316

315317
fullListener->OnViewSnapshot(snap1);
316318
fullListener->OnViewSnapshot(snap2); // Emits no events.
@@ -343,11 +345,11 @@ - (void)testMetadataOnlyDocumentChangesAreFilteredOutWhenIncludeDocumentMetadata
343345

344346
auto filteredListener = QueryListener::Create(query, Accumulating(&filteredAccum));
345347

346-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
347-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1, doc2}, absl::nullopt).value();
348-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {doc1Prime, doc3}, absl::nullopt).value();
348+
View view(query, DocumentKeySet{});
349+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1, doc2}, absl::nullopt).value();
350+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {doc1Prime, doc3}, absl::nullopt).value();
349351

350-
DocumentViewChange change3{doc3, DocumentViewChange::Type::kAdded};
352+
DocumentViewChange change3{doc3, DocumentViewChange::Type::Added};
351353

352354
filteredListener->OnViewSnapshot(snap1);
353355
filteredListener->OnViewSnapshot(snap2);
@@ -376,11 +378,11 @@ ListenOptions options(
376378
/*wait_for_sync_when_online=*/true);
377379
auto listener = QueryListener::Create(query, options, Accumulating(&events));
378380

379-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
380-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1}, absl::nullopt).value();
381-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {doc2}, absl::nullopt).value();
381+
View view(query, DocumentKeySet{});
382+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1}, absl::nullopt).value();
383+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {doc2}, absl::nullopt).value();
382384
ViewSnapshot snap3 =
383-
FSTTestApplyChanges(view, {}, FSTTestTargetChangeAckDocuments({doc1.key(), doc2.key()}))
385+
FSTTestApplyChanges(&view, {}, FSTTestTargetChangeAckDocuments({doc1.key(), doc2.key()}))
384386
.value();
385387

386388
listener->OnOnlineStateChanged(OnlineState::Online); // no event
@@ -390,8 +392,8 @@ ListenOptions options(
390392
listener->OnViewSnapshot(snap2);
391393
listener->OnViewSnapshot(snap3);
392394

393-
DocumentViewChange change1{doc1, DocumentViewChange::Type::kAdded};
394-
DocumentViewChange change2{doc2, DocumentViewChange::Type::kAdded};
395+
DocumentViewChange change1{doc1, DocumentViewChange::Type::Added};
396+
DocumentViewChange change2{doc2, DocumentViewChange::Type::Added};
395397
ViewSnapshot expectedSnap{snap3.query(),
396398
snap3.documents(),
397399
/*old_documents=*/DocumentSet{snap3.query().Comparator()},
@@ -417,9 +419,9 @@ ListenOptions options(
417419

418420
auto listener = QueryListener::Create(query, options, Accumulating(&events));
419421

420-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
421-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {doc1}, absl::nullopt).value();
422-
ViewSnapshot snap2 = FSTTestApplyChanges(view, {doc2}, absl::nullopt).value();
422+
View view(query, DocumentKeySet{});
423+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {doc1}, absl::nullopt).value();
424+
ViewSnapshot snap2 = FSTTestApplyChanges(&view, {doc2}, absl::nullopt).value();
423425

424426
listener->OnOnlineStateChanged(OnlineState::Online); // no event
425427
listener->OnViewSnapshot(snap1); // no event
@@ -428,8 +430,8 @@ ListenOptions options(
428430
listener->OnOnlineStateChanged(OnlineState::Offline); // no event
429431
listener->OnViewSnapshot(snap2); // another event
430432

431-
DocumentViewChange change1{doc1, DocumentViewChange::Type::kAdded};
432-
DocumentViewChange change2{doc2, DocumentViewChange::Type::kAdded};
433+
DocumentViewChange change1{doc1, DocumentViewChange::Type::Added};
434+
DocumentViewChange change2{doc2, DocumentViewChange::Type::Added};
433435
ViewSnapshot expectedSnap1{query,
434436
/*documents=*/snap1.documents(),
435437
/*old_documents=*/DocumentSet{snap1.query().Comparator()},
@@ -456,8 +458,8 @@ - (void)testWillRaiseInitialEventWhenGoingOfflineAndThereAreNoDocs {
456458
core::Query query = Query("rooms");
457459
auto listener = QueryListener::Create(query, Accumulating(&events));
458460

459-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
460-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {}, absl::nullopt).value();
461+
View view(query, DocumentKeySet{});
462+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {}, absl::nullopt).value();
461463

462464
listener->OnOnlineStateChanged(OnlineState::Online); // no event
463465
listener->OnViewSnapshot(snap1); // no event
@@ -480,8 +482,8 @@ - (void)testWillRaiseInitialEventWhenStartingOfflineAndThereAreNoDocs {
480482
core::Query query = Query("rooms");
481483
auto listener = QueryListener::Create(query, Accumulating(&events));
482484

483-
FSTView *view = [[FSTView alloc] initWithQuery:query remoteDocuments:DocumentKeySet{}];
484-
ViewSnapshot snap1 = FSTTestApplyChanges(view, {}, absl::nullopt).value();
485+
View view(query, DocumentKeySet{});
486+
ViewSnapshot snap1 = FSTTestApplyChanges(&view, {}, absl::nullopt).value();
485487

486488
listener->OnOnlineStateChanged(OnlineState::Offline); // no event
487489
listener->OnViewSnapshot(snap1); // event

Firestore/Example/Tests/Core/FSTViewSnapshotTest.mm

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ @implementation FSTViewSnapshotTests
4646

4747
- (void)testDocumentChangeConstructor {
4848
Document doc = Doc("a/b", 0, Map());
49-
DocumentViewChange::Type type = DocumentViewChange::Type::kModified;
49+
DocumentViewChange::Type type = DocumentViewChange::Type::Modified;
5050
DocumentViewChange change{doc, type};
5151
XCTAssertEqual(change.document(), doc);
5252
XCTAssertEqual(change.type(), type);
@@ -65,43 +65,43 @@ - (void)testTrack {
6565
Document docModifiedThenRemoved = Doc("b/4", 0, Map());
6666
Document docModifiedThenModified = Doc("b/5", 0, Map());
6767

68-
set.AddChange(DocumentViewChange{docAdded, DocumentViewChange::Type::kAdded});
69-
set.AddChange(DocumentViewChange{docRemoved, DocumentViewChange::Type::kRemoved});
70-
set.AddChange(DocumentViewChange{docModified, DocumentViewChange::Type::kModified});
71-
set.AddChange(DocumentViewChange{docAddedThenModified, DocumentViewChange::Type::kAdded});
72-
set.AddChange(DocumentViewChange{docAddedThenModified, DocumentViewChange::Type::kModified});
73-
set.AddChange(DocumentViewChange{docAddedThenRemoved, DocumentViewChange::Type::kAdded});
74-
set.AddChange(DocumentViewChange{docAddedThenRemoved, DocumentViewChange::Type::kRemoved});
75-
set.AddChange(DocumentViewChange{docRemovedThenAdded, DocumentViewChange::Type::kRemoved});
76-
set.AddChange(DocumentViewChange{docRemovedThenAdded, DocumentViewChange::Type::kAdded});
77-
set.AddChange(DocumentViewChange{docModifiedThenRemoved, DocumentViewChange::Type::kModified});
78-
set.AddChange(DocumentViewChange{docModifiedThenRemoved, DocumentViewChange::Type::kRemoved});
79-
set.AddChange(DocumentViewChange{docModifiedThenModified, DocumentViewChange::Type::kModified});
80-
set.AddChange(DocumentViewChange{docModifiedThenModified, DocumentViewChange::Type::kModified});
68+
set.AddChange(DocumentViewChange{docAdded, DocumentViewChange::Type::Added});
69+
set.AddChange(DocumentViewChange{docRemoved, DocumentViewChange::Type::Removed});
70+
set.AddChange(DocumentViewChange{docModified, DocumentViewChange::Type::Modified});
71+
set.AddChange(DocumentViewChange{docAddedThenModified, DocumentViewChange::Type::Added});
72+
set.AddChange(DocumentViewChange{docAddedThenModified, DocumentViewChange::Type::Modified});
73+
set.AddChange(DocumentViewChange{docAddedThenRemoved, DocumentViewChange::Type::Added});
74+
set.AddChange(DocumentViewChange{docAddedThenRemoved, DocumentViewChange::Type::Removed});
75+
set.AddChange(DocumentViewChange{docRemovedThenAdded, DocumentViewChange::Type::Removed});
76+
set.AddChange(DocumentViewChange{docRemovedThenAdded, DocumentViewChange::Type::Added});
77+
set.AddChange(DocumentViewChange{docModifiedThenRemoved, DocumentViewChange::Type::Modified});
78+
set.AddChange(DocumentViewChange{docModifiedThenRemoved, DocumentViewChange::Type::Removed});
79+
set.AddChange(DocumentViewChange{docModifiedThenModified, DocumentViewChange::Type::Modified});
80+
set.AddChange(DocumentViewChange{docModifiedThenModified, DocumentViewChange::Type::Modified});
8181

8282
std::vector<DocumentViewChange> changes = set.GetChanges();
8383
XCTAssertEqual(changes.size(), 7);
8484

8585
XCTAssertEqual(changes[0].document(), docAdded);
86-
XCTAssertEqual(changes[0].type(), DocumentViewChange::Type::kAdded);
86+
XCTAssertEqual(changes[0].type(), DocumentViewChange::Type::Added);
8787

8888
XCTAssertEqual(changes[1].document(), docRemoved);
89-
XCTAssertEqual(changes[1].type(), DocumentViewChange::Type::kRemoved);
89+
XCTAssertEqual(changes[1].type(), DocumentViewChange::Type::Removed);
9090

9191
XCTAssertEqual(changes[2].document(), docModified);
92-
XCTAssertEqual(changes[2].type(), DocumentViewChange::Type::kModified);
92+
XCTAssertEqual(changes[2].type(), DocumentViewChange::Type::Modified);
9393

9494
XCTAssertEqual(changes[3].document(), docAddedThenModified);
95-
XCTAssertEqual(changes[3].type(), DocumentViewChange::Type::kAdded);
95+
XCTAssertEqual(changes[3].type(), DocumentViewChange::Type::Added);
9696

9797
XCTAssertEqual(changes[4].document(), docRemovedThenAdded);
98-
XCTAssertEqual(changes[4].type(), DocumentViewChange::Type::kModified);
98+
XCTAssertEqual(changes[4].type(), DocumentViewChange::Type::Modified);
9999

100100
XCTAssertEqual(changes[5].document(), docModifiedThenRemoved);
101-
XCTAssertEqual(changes[5].type(), DocumentViewChange::Type::kRemoved);
101+
XCTAssertEqual(changes[5].type(), DocumentViewChange::Type::Removed);
102102

103103
XCTAssertEqual(changes[6].document(), docModifiedThenModified);
104-
XCTAssertEqual(changes[6].type(), DocumentViewChange::Type::kModified);
104+
XCTAssertEqual(changes[6].type(), DocumentViewChange::Type::Modified);
105105
}
106106

107107
- (void)testViewSnapshotConstructor {
@@ -110,7 +110,7 @@ - (void)testViewSnapshotConstructor {
110110
DocumentSet oldDocuments = documents;
111111
documents = documents.insert(Doc("c/a", 1, Map()));
112112
std::vector<DocumentViewChange> documentChanges{
113-
DocumentViewChange{Doc("c/a", 1, Map()), DocumentViewChange::Type::kAdded}};
113+
DocumentViewChange{Doc("c/a", 1, Map()), DocumentViewChange::Type::Added}};
114114

115115
bool fromCache = true;
116116
DocumentKeySet mutatedKeys;

0 commit comments

Comments
 (0)