Repository navigation
Commit 899ff09
authored
refactor(firestore,apple): migrate iOS/macOS plugin implementation to Swift (#18607)
* refactor(firestore,apple): migrate iOS/macOS plugin implementation to Swift
Replace the Objective-C Firestore plugin with a Swift implementation so Apple platforms can use Pigeon swiftOut and the typed pipeline Expression APIs.
* format
* fix(firestore,apple): address leak, retain-cycle, and parser review notes
Unregister event channels when streams cancel, avoid capturing self in snapshot listeners, copy snapshot maps without an intermediate array, cap pipeline nesting, and replace forced casts in query parsing with typed errors.
* format
* fix(firestore,apple): catch Firestore NSExceptions while parsing queries
Swift do/catch does not catch NSException, so an invalid query crashed
the release app instead of returning the parse error. Aggregate group
expressions now fail the pipeline instead of being dropped.
* fix(firestore,apple): point the macOS resources symlink at the iOS file
The Resources gitkeep had one extra parent segment, so the macOS package
resource directory did not exist.
* fix(firestore,apple): accept List<int> pipeline constants as bytes
Dart sends a byte constant as an array of numbers. Map that array to Data and pass it to Constant, the public bytes API.
* fix(firestore,apple): keep transaction results consistent across threads
The handler stays alive for the whole Firestore transaction, and the
result and commands are read and written under one lock.1 parent f4c9ec1 commit 899ff09
101 files changed
Lines changed: 6319 additions & 7796 deletions
File tree
- packages/cloud_firestore
- cloud_firestore_platform_interface
- pigeons
- test/pigeon
- cloud_firestore
- ios
- cloud_firestore
- Sources
- cloud_firestore_objc
- include
- cloud_firestore
- include/cloud_firestore
- Private
- Public
- macos
- cloud_firestore
- Sources
- cloud_firestore_objc
- include
- cloud_firestore
- Resources
- include/cloud_firestore
- Private
- Public
- pipeline_example/integration_test/pipeline
- windows
- scripts
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
28 | | - | |
29 | | - | |
| 27 | + | |
| 28 | + | |
30 | 29 | | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | 39 | | |
41 | 40 | | |
42 | 41 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
27 | 39 | | |
28 | 40 | | |
29 | 41 | | |
| 42 | + | |
30 | 43 | | |
31 | 44 | | |
32 | 45 | | |
33 | 46 | | |
| 47 | + | |
34 | 48 | | |
35 | 49 | | |
36 | 50 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
| 51 | + | |
| 52 | + | |
43 | 53 | | |
44 | | - | |
| 54 | + | |
45 | 55 | | |
46 | 56 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
0 commit comments