* Add Public API for Or Query
* Add Or query swift tests
* Add Swift tests for IN
* Adding back FIRFirestore+Internal as include file
* Add Documentation
* Address feedback
* Update the changelog.
---------
Co-authored-by: Ehsan Nasiri <ehsann@google.com>
* Proto serialization
* Wire up api
* End to end functional
* Linting
* Add aggregate source
* Fix cmake and style
* Comments, emulators and lints
* Feedback.
* More feedback.
* Implement the Composite Filter class
* Polish code
* add tests for composite filter
* fix broken test
* Improve the implementation of flattern filters
* change the flatten_filters implementation with some other things
* Change the implementation of Filter in Composite Filter
* Address feedback
* Match Android Tests
This would conflict with any definition of a `util` namespace imported from a header. While this applies to other aliases as well, `util` is the one most likely to clash and the one that has actually caused problems.
#no-changelog
* `operator==` (isEqual) behavior for DocumentSnapshot.
* Do not consider MutableDocument's state for DocumentSnapshot comparison.
* Address comments.
* Update changelog.
* Don't compare the key twice.
* Throw more specific exceptions when the error is due to bad input (backport of cr/359824564) (note that this only applies to the Unity build);
* Always log exceptions to make sure they make it into the log (regardless of exception handling by the user and any potential issues with the exception propagation mechanism).
#no-changelog
If a user calls terminate and immediately disposes their reference to Firestore, it's possible that while termination is in process, the last remaining reference (more precisely, shared pointer) to Firestore is in a listener. When that listener is destroyed as part of the termination, it leads to `api::Firestore` being destroyed. Importantly, termination happens on the worker queue. The destructor of `api::Firestore` calls `Dispose` which presumes it's not called from the worker queue and tries to enqueue work, leading to a failing assertion and a crash.
The solution is simply to remove the sequential order checks when the queue enters/is in restricted mode. There is a legitimate case where the Firestore destructor can run on the worker queue, as the original issue shows. The complexity of #7412 also indicates that a simpler solution is preferable.
Fixes#6909.
Snapshots will now always include `FIRTimestamp` values. Use
`[FIRTimestamp dateValue]` to convert to `NSDate` if required.
`timestampsInSnapshotsEnabled` was deprecated in Firebase 5.16.0
(January 22, 2019) and has defaulted to true since then.
Projects that have not enabled `timestampsInSnapshotsEnabled` have
logged a warning since Firebase 4.12.0 (April 10, 2018).
* Add the ability to await a single expectation
* Await individual expectations in test helpers
This prevents tests from accidentally awaiting unrelated expectations
when using the helpers.
* Fix tests that implicitly relied on test helpers to await all
* Add a test that verifies ListenerRegistration::Remove blocks
* Block ListenerRegistration::Remove when there are outstanding callbacks.
* Test that remove does not block when called from the callback.