* Remove references to removed classes
* Remove references to FSTSyncEngine
* Fix references to Objective-C names that are no longer valid.
* Remove forward declarations to classes that don't exist
* Remove FSTTypes.h
* Remove usages of headers that no longer apply
* Clean up header imports
* Remove traces of Objective-C from api/firestore.{h,mm}
* Strip NS_ASSUME_NONNULL directives that don't apply
* Remove FSTSyncEngine.h
* Port FSTMemoryPersistence to C++ (#3754)
* Add local::Persistence
* Add MemoryPersistence
* Add MemoryEagerReferenceDelegate
* Make LruDelegate extend ReferenceDelegate
This enables downcasting to LruDelegate in tests that need to do so.
* Add MemoryLruReferenceDelegate
* Don't double-count document key size.
* Port FSTLevelDB to C++ (#3755)
* Add LevelDbPersistence
Note that Apple-specific initialization has been partitioned off in
anticipation of being able to run this code on non-Apple platforms.
* Add LevelDbLruReferenceDelegate
* Migrate to C++ Persistence (1/2) (#3756)
* Use C++ Persistence classes in FSTLocalStore
* Remove ReferenceDelegateBridge
* Cut src over to C++ persistence types
* Remove Objective-C requirement from some classes
... that no longer require it.
* Migrate to C++ Persistence (2/2) (#3757)
* Remove LruDelegateBridge
* Update test initialization of persistence components
In particular, ensure that there's always an owner for the Persistence
instance, which wasn't always handled explicitly in the Objective-C
version of the tests.
* Largely mechanical changes to tests
* Remove Objective-C persistence classes
* Forward declare util::Status when possible (#3761)
* Add a header dedicated to forward declarations for util::Status
* Use status_fwd.h wherever possible
* Rewrite Document-related classes as a polymorphic value type
* Pass ObjectValue without rvalue references
* Rename HasLocalMutations
* Port C++ users to new Documents
* Port FSTDocumentTests to C++
* Port FSTDocumentSetTests to C++
* Migrate DocumentMap and DocumentSet to C++ Document
* Migrate test helpers
* Delete FSTDocumentSetTests
* Delete FSTDocumentTests
* Mechanical changes to use C++ Document
* Updates to the project file
* Nontrivial test updates
* Remove FSTTestDeletedDoc
* Remove FSTTestUnknownDoc
* Remove FSTDocument
* Convert usage of FSTDocument to C++ Document
* Fix Serializer usage of Documents
* Use C++ Documents in FSTQueryTests
* Fix FieldPath::kDocumentKeyPath definition
* Add missing operator<< to Document and DocumentKey
* Migrate FSTQueryTests.mm to C++ query_test.cc
* Remove FSTQueryTests
* Remove FSTQuery
* Port FSTSortOrder to C++ OrderBy
* Finish port of C++ Direction from Android
* Reimplement FSTSortOrder with C++ OrderBy
* Migrate FSTSortOrder to C++ OrderBy
* Remove FSTSortOrder
* Compare OrderBy equality in C++ Query
* unique_ptr test failure
* Hopefully working?
* address comment and remove OC class
* remove compile commands and reformat
* reformat
* no using in header
* Rename relation_filter.{h,cc} to field_filter.{h,cc}
* Rename RelationFilter to FieldFilter
* Move Filter::Create to FieldFilter
* Port api::Query::ValidateNewFilter
* Add ArrayContainsFilter
* Add KeyFieldFilter
* Make FieldFilter constructor protected
* Port FieldFilter refactor from the JS SDK
https://github.com/firebase/firebase-js-sdk/pull/1894
* Add spec test from firebase/firebase-js-sdk#1913
* Accept array-contains as a synonym for array_contains
* Use C++ Filters in FSTQuery without changing interface
* Remove FSTQuery initWithPath
* sync_project.rb generated changes
* Implement Filter equality
* Consistently use testutil:: helpers unqualified
* Use C++ Filters in FSTQuery
* Add a test that verifies canonical IDs don't change
* Remove Query::AtPath
This has no parallel in Typescript or Java implementations.
* Add util::Equals
... for comparing pointers by the thing to which they point.
* Use std::shared_ptr<const std::string> for collection group IDs
* Reorder/Cleanup C++ Query to match Android
* Add collection group to C++ Query
* remove C++11 library feature from `Timestamp` (which is supposed to be "portable");
* fix return type mismatch (`bool` vs `BOOL`);
* removed unused `using` declaration;
* fix typo in function name.
* Add FieldValue::Reference
* Migrate FSTReferenceValue to FSTDelegateValue
* Build Objective-C components with CMake
Build only the things required for FSTFieldValue
* Migrate FSTNullValue to FSTDelegateValue
* Migrate FSTIntegerValue to FSTDelegateValue
* Migrate FSTDoubleValue to FSTDelegateValue
* Migrate FSTGeoPointValue to FSTDelegateValue
* Remove stale references to DatabaseId
* Have Firestore take the DatabaseId directly
* Allow tests to default the database implicitly
* Have FSTSerializerBeta take DatabaseId by value
* Have FSTUserDataConverter take DatabaseId by value
* Make FIRFirestore.databaseID a const reference
* Make FSTFirestoreClient.databaseID a const reference
* Have FSTReferenceValue take DatabaseId by value
* Have DatabaseInfo take DatabaseId by value
* Have Serializer take DatabaseId by value
* Fix C++ ReferenceValue
* Take DatabaseId by value
* Reverse order to match Android
* Rename `reference` to `key`