aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Example
Commit message (Collapse)AuthorAge
* Keep track of number of queries in the query cache (#776)Gravatar Greg Soltis2018-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement schema versions * Style fixes * newlines, copyrights, assumptions * Fix nullability * Raw ptr -> shared_ptr * kVersionTableGlobal -> kVersionGlobalTable * Drop utils, move into static methods * Drop extra include * Add a few more comments * Move version constant into migrations file * formatting? * Fix comment * Split add and update queryData * Work on adding targetCount * More work on count * Using shared_ptr * Implement count for query cache * use quotes * Add cast * Styling * Revert year bump in copyright * Add adversarial key to migration test * Add comment * Fix style
* Port Firestore Document to C++ (#777)Gravatar zxu2018-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * implement SnapshotVersion and test * update project * implement MaybeDocument and test * move snapshot-version from core to model * fix a bug * implement Document and test * implement NoDocument * adding type tag and fix style * fix a few bugs, discovered after merging and test run. * add assert to check FieldValue type and more test for comparision. * address changes * allow moving FieldValue to construct Document. * address changes * add document tests to project * use std::less convention * make Type::Unknown static initializer
* C++ port: add C++ equivalent of FSTDocumentKey. (#762)Gravatar Konstantin Varlamov2018-02-09
| | | | | Also move kDocumentKeyPath to the only point of usage - make it a static member variable of FieldPath.
* port Firestore SnapshotVersion in C++ (#767)Gravatar zxu2018-02-09
| | | * implement SnapshotVersion and test
* port Firestore Auth module in C++ (#733)Gravatar zxu2018-02-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement firestore/auth/user * add user to project and some fixes * implement firestore/auth/{credentials_provider,empty_credentials_provider} * implement firestore/auth/firebase_credentials_provider * refactoring firebase_credentials_provider and add (disabled but working) unit test * add auth test to project * address changes * small fix to style and project * fix the firebase_credentials_provider_test * fix style * address changes * revert the change to static mutex_ * remove my custom plist path * fix style * address changes * refactoring FirebaseCredentialsProvider to fix the issue w.r.t. auth global dispatch queue * add /*force_refresh=*/ tag to bool literal for style purpose * Use a shared_ptr/weak_ptr handoff on FirebaseCredentialsProvider (#778) * Revert "refactoring FirebaseCredentialsProvider to fix the issue w.r.t. auth global dispatch queue" This reverts commit 87175a4146267d403a774f138b85f8d3b532fa4b. * Use a shared_ptr/weak_ptr handoff on FirebaseCredentialsProvider This avoids any problems with callsbacks retaining pointers to objects destroyed by a C++ destructor
* C++ port: port FSTFieldPath and FSTResourcePath to C++ (#749)Gravatar Konstantin Varlamov2018-02-06
| | | Similar to Objective-C, FieldPath and ResourcePath share most of their interface (and implementation) by deriving from BasePath (using CRTP, so that factory methods in BasePath can return an instance of the derived class).
* Implement Firestore DatabaseInfo and port both Database{Id,Info} C++ to the ↵Gravatar zxu2018-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | iOS code (#738) * implement Firestore DatabaseInfo in C++ * temporary stash changes; blocking on the massive renaming of .m to .mm * add database_info_test to project * finish port DatabaseId and fix style, modular fixing DatabaseInfo * port DatabaseInfo * remove FSTDatabase{ID,Info} and their tests from project * fix unit test * use namespace alias * use namespace alias, leftover * address more changes * refactoring to use raw pointer instead of value for property * address changes * remove self-> * fix style * remove the name suffix Alloc * fix a bug
* Increase expectation timeout to 25 seconds. (#744)Gravatar Michael Lehenbauer2018-02-02
| | | | | | | I'm doing this to: 1) Experimentally see if it improves the flakiness we've been seeing in the Query Conformance Tests. 2) Insulate us from the fact that GRPC seems to take a /minimum/ of 10 seconds to reconnect (at least in some cases) after a connection failure. I've opened b/72864027 to revisit this in the future.
* Align tests and integration test header search paths (#737)Gravatar Gil2018-02-01
|
* Remove predecessorKey,Object,Document, etc (#735)Gravatar Gil2018-02-01
| | | | | This is dead code. I think it was probably useful in the RTDB because of the way it notified of changes, but we give changes with indexes in Firestore so I think we don't need it.
* Start on ArraySortedMap in C++ (#721)Gravatar Gil2018-01-31
| | | | | | * Implement ArraySortedMap.remove * Implement ArraySortedMap.insert * Ensure ArraySortedMap.insert avoids copying on duplicates * Port more ArraySortedMapTests
* Move all Firestore Objective-C to Objective-C++ (#734)Gravatar Gil2018-01-31
| | | | | | | | | | | | | | * Move all Firestore files to Objective-C++ * Update project file references * Don't use module imports from Objective-C++ * Use extern "C" for C-accessible globals * Work around more stringent type checking in Objective-C++ * NSMutableDictionary ivars aren't implicitly casted to NSDictionary * FSTMaybeDocument callback can't be passed a function that accepts FSTDocument * NSComparisonResult can't be multiplied by -1 without casting * Add a #include <inttypes.h> where needed * Avoid using C++ keywords as variables * Remove #if __cplusplus guards
* Schema migrations for LevelDB (#728)Gravatar Greg Soltis2018-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | * Implement schema versions * Style fixes * newlines, copyrights, assumptions * Fix nullability * Raw ptr -> shared_ptr * kVersionTableGlobal -> kVersionGlobalTable * Drop utils, move into static methods * Drop extra include * Add a few more comments * Move version constant into migrations file * formatting? * Fix comment
* Firestore DatabaseId in C++ (#727)Gravatar zxu2018-01-29
| | | | | | | | | | | | * Implement DataBaseId in C++ * add database_id_test to project * fix project * address changes * fix style
* Version updates to 4.8.2 (#722)Gravatar Paul Beusterien2018-01-27
|
* Fix b/72502745: OnlineState changes cause limbo document crash. (#470) (#714)Gravatar Michael Lehenbauer2018-01-27
| | | | | | | | | | | | | | | | | | | | [PORT OF https://github.com/firebase/firebase-js-sdk/pull/470] Context: I made a previous change to raise isFromCache=true events when the client goes offline. As part of this change I added an assert for "OnlineState should not affect limbo documents", which it turns out was not valid because: * When we go offline, we set the view to non-current and call View.applyChanges(). * View.applyChanges() calls applyTargetChange() even though there's no target change and it recalculates limbo documents. * When the view is not current, we consider no documents to be in limbo. * Therefore all limbo documents are removed and so applyChanges() ends up returning unexpected LimboDocumentChanges. Fix: I've modified the View logic so that we don't recalculate limbo documents (and generate LimboDocumentChanges) when the View is not current, so now my assert holds and there should be less spurious removal / re-adding of limbo documents.
* normalize and port the rest of Firebase/Port code (#713)Gravatar zxu2018-01-27
| | | | * normalize bits * normalize ordered_code
* port TargetIdGenerator to iOS (#709)Gravatar zxu2018-01-25
| | | | | | | | | | * port TargetIdGenerator to iOS * fix style * move pointer property to instance variable * TriggerTravis
* implement `TargetIdGenerator` in C++ for Firestore (#701)Gravatar zxu2018-01-25
| | | | | | * implement `TargetIdGenerator` * address changes
* normalize string_util (#708)Gravatar zxu2018-01-25
| | | | * refactoring string_util * port string_util to iOS
* Implement the rest of FieldValue types for C++ (#687)Gravatar zxu2018-01-25
| | | | | | | | | | | | * implement FieldValue for null and boolean. * Implement number and string FieldValue. * Implement object FieldValue. * implement timestamp FieldValue. * Implement number and string FieldValue. * implement public type `Blob` and `GeoPoint` * implement Blob FieldValue * Implement GeoPoint FieldValue * refactoring `Blob`
* Cleanup imports and isEqual (#685)Gravatar Gil2018-01-21
| | | | | | | | | | * Fix headers * Fix isEqual verbosity * Fix isEqual for nullable properties * Fix nullability on FSTTestDocSnapshot
* Port comparison to C++ (#678)Gravatar Gil2018-01-19
| | | | | | | | | | | | | | | This reimplements our comparison functions as C++ Comparators and then provides compatibility shims for interoperating with existing Objective-C usage. A few specialized comparators aren't suitable for porting but only have a single usage (e.g. CompareBytes for comparing NSData * instances). In these cases I've moved them into the caller. * Use int32_t for typeof(ID) in FSTDocumentReference * Migrate callers of FSTComparison.h to Objective-C++ * Port comparison to C++ * Migrate usages of FSTComparison.h to C++ equivalents * Remove FSTComparison
* Merge pull request #680 from firebase/release-4.8.1Gravatar Paul Beusterien2018-01-18
|\ | | | | Merge Release 4.8.1
* | Listen sequence numbers (#675)Gravatar Greg Soltis2018-01-17
| | | | | | | | | | | | | | | | | | | | | | | | * Generate and save sequence numbers for listens * Add documentation * Fix include path * Fix unavailable comment * Review feedback
* | implement FieldValue for null, boolean, and array in C++. (#637)Gravatar zxu2018-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * implement FieldValue for null and boolean. * refactoring to use union type instead of poly * refactor using union design intead of poly * refactoring to use anonymous union and fix styles * small fix * add field_value_test to the project * fix warning of cmake and fix style
* | Add assert_test to the Xcode build (#671)Gravatar Gil2018-01-16
| | | | | | | | | | | | * Exclude stdio-backed assert from the Xcode build * Add assert_test to the Xcode build
| * Fix issue @morganchen12 discovered where we weren't properly creating ↵Gravatar Michael Lehenbauer2018-01-15
| | | | | | | | | | | | FIRQueryDocumentSnapshot instances. (#662)
* | Fix issue @morganchen12 discovered where we weren't properly creating ↵Gravatar Michael Lehenbauer2018-01-12
| | | | | | | | | | | | FIRQueryDocumentSnapshot instances. (#662)
| * Merge remote-tracking branch 'origin/master' into release-4.8.1Gravatar Paul Beusterien2018-01-12
| |\ | |/ |/|
* | Fix import formatting (#660)Gravatar Paul Beusterien2018-01-12
| |
| * Merge pull request #650 from firebase/bstpierre-version-bumpGravatar Benoit St-Pierre2018-01-11
| |\ | | | | | | Version bump for 4.8.1 Release
| * | Update from masterGravatar Benoit St-Pierre2018-01-11
| | | | | | | | | | | | | | | Picking up a few last-minute changes to CHANGELOGs and tests for 4.8.1 release.
| | * Version bump for 4.8.1 ReleaseGravatar Benoit St-Pierre2018-01-11
| |/ | | | | | | Updated the version numbers of pods which are being released in 4.8.1
* / Fix FSTLocalDocumentsView to allow multiple mutations while offline (#644)Gravatar rsgowman2018-01-11
|/ | | | | * Fix FSTLocalDocumentsView to allow multiple mutations while offline. Previously, only the last mutation would actually be visible.
* Run style.sh (#636)Gravatar Michael Lehenbauer2018-01-10
| | | | Run style.sh (w/ clang-format version 6)
* Merge branch 'master' into mikelehen/merge-master-to-firestore-api-changesGravatar Michael Lehenbauer2018-01-09
|\
| * Port StringPrintf from //base (#624)Gravatar Gil2018-01-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Port StringPrintf from //base. Prefer this to approaches based on variadic templates. While the variadic template mechanisms are strictly safer, they result in binary bloat we can't afford. This is essentially the same StringPrintf previously open sourced as a part of protobuf, though updated for C++11 which saves a copy and a temporary buffer on the heap. * Add abseil as a subdirectory of Firestore This saves having to redefine all the libraries that abseil defines as imported libraries. * Rename firebase_firesture_util_log_* targets Cut the log out of the name to reflect that these will get more components besides just logging.
* | Fixing potential race in ServerTimestamp testsGravatar Sebastian Schmidt2018-01-05
| |
| * Use the log_apple.mm logger from C++ on iOS (#593)Gravatar Gil2018-01-01
| | | | | | | | | | | | * Add all .mm files in Firestore/core to the build (which matches log_apple.mm). * Exclude log_stdio.cc * Add log_test.cc to the project
* | Rename all the onlineStateChanged methods to applyChangedOnlineState. (#574)Gravatar Michael Lehenbauer2017-12-19
| |
* | Firestore `isEqual()` on Public Types (#569)Gravatar zxu2017-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add bone code for new isEqual and unit test for old isEqual * add bone code for `FIRCollectionReference`, `FIRDocumentSnapshot`, `FIRFieldValue`, `FIRQuerySnapshot`, `FIRSnapshotMetadata`; * change inconsistenciness of `FIRFieldPath.isEqual` implementation; * add unit test (and file) for `FIRDocumentReferenceTest.m`, `FIRFieldPathTest.m`, `FIRQueryTests.testEquals`; `FIRGeoPoint` already has test and Blob is internal type. * Implement isEqual for FIRCollectionReference adding the working code and unit test. * implement isEqual for FIRSnapshotMetadata * Implement isEqual for FIRDocumentSnapshot * Implement isEqual for FIRQuerySnapshot * (un)implement `isEqual` for `FIRFieldValue` Since `FIRFieldValue` both types are singleton, we do not need override `isEqual`. Add test to test the default `NSObject` `isEqual` works just fine. * fix style with `scripts/style.sh` * Implement hash for those with overridden isEqual without hash yet. * refactor to use test helper functions -- FSTTestFirestore, FSTTestPath, FSTTestDocKey * refactor using test helper `FSTTestDocSnapshot`, `FSTTestFieldPath`, `FSTTestQuery`, `FSTTestDoc` * refactoring to use test helper method `FSTTestQuerySnapshot`, * remove unneccessary nil-check, check isKindOfClass instead of isEqual * refactoring: adding `FSTAPIHelpers.{h,m}`, `FSTTest{Collection,Document}Ref`, better naming and style fix * a file forgot in last commit * mainly clean up import and some minor refactoring * fix style via style.sh * minor style fix * add pragma ignored -Wnonnull
| * Merge pull request #576 from firebase/release-4.8.0Gravatar Kyle Ju2017-12-19
| |\ | | | | | | Release 4.8.0
| * | Use angle brackets for nonlocal #includes in Firestore (#580)Gravatar Gil2017-12-19
| | |
* | | Clean up warnings (#578)Gravatar Gil2017-12-18
| | | | | | | | | | | | | | | * Clean up warnings * Remove optional parens around ifs
* | | Expose network management (#566)Gravatar Greg Soltis2017-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Expose network management in public API * Clean up a few more references to the internal access of network management * Move test * Update comments * Swap _Nullable for nullable * Fix comment * Add tests, including swift * Styling
* | | Test cleanup: Adds a helper for waiting for FSTVoidErrorBlock callbacks.Gravatar Michael Lehenbauer2017-12-18
| | | | | | | | | | | | | | | | | | | | | * Add helper for waiting for FSTVoidErrorBlock callbacks. * Remove errorEventHandler from FSTEventAccumulator.h too. * Add synchronous enableNetwork / disableNetwork helpers. * Workaround for batch writes test flakiness.
* | | Fixing return type of verifySnapshotWithResolvedTimestampsGravatar Sebastian Schmidt2017-12-18
| | | | | | | | | | | | This should address a crash that happens when a debugger is attached
* | | b/68276665: Raise isFromCache=true events when offline (#567)Gravatar Michael Lehenbauer2017-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Plumbs FSTOnlineState changes through to views. * View sets this.current to false on FSTOnlineStateFailed, triggering isFromCache=true events. It will automatically be returned to true once the listen is reestablished and we get a new CURRENT message. * Updated tests (and added one new one) to verify behavior. * Unifies setOnlineStateToUnknown, setOnlineStateToHealthy, and updateAndBroadcastOnlineState into a single updateOnlineState method. * Split disableNetwork into (public) disableNetwork and (private) disableNetworkWithTargetOnlineState methods.. * Some miscellaneous comment cleanup. * Add missing comment per CR feedback.
* | | Adding Swift build testGravatar Sebastian Schmidt2017-12-14
| | |