Skip to content

Swift Codable and Extension DocumentSnapshot #2636

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 188 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
5982981
Prevent Messaging and IID singleton usage during tests. (#2250)
ryanwilson Jan 28, 2019
7c51215
Port FSTListenSequence (#2322)
Jan 29, 2019
2ac7c2f
Verify large write batches support (#2321)
wilhuff Jan 29, 2019
06d9e6d
Update CHANGELOG for Firestore v1.0.1 (#2323)
wilhuff Jan 29, 2019
f08a8bc
C++ migration: port `FSTTargetChange` (#2318)
var-const Jan 29, 2019
8626e31
C++ migration: port `FSTRemoteEvent` (#2320)
var-const Jan 29, 2019
388f267
Remove FSTMutationQueue (#2319)
Jan 30, 2019
9ec14cc
Don't build fuzz tests target on Travis (#2330)
var-const Feb 1, 2019
61f173e
C++ migration: port `FSTOnlineStateTracker` (#2325)
var-const Feb 1, 2019
11b5ddb
Make scripts/style.sh compatible with newer swiftformat versions (0.3…
mikelehen Feb 1, 2019
a43709f
Port flaky test fix from web. (#2332)
mikelehen Feb 1, 2019
3905bd2
Open source FIAM headless SDK (#2312)
christibbs Feb 2, 2019
456e8eb
C++ migration: port watch stream-related part of `FSTRemoteStore` (#2…
var-const Feb 3, 2019
8605120
Add IAM headless to CI (#2341)
paulb777 Feb 4, 2019
6df99be
Bump FirebaseAnalyticsInterop version (#2315)
paulb777 Feb 4, 2019
c47123b
Update library name to `fire-fiam`. (#2352)
ryanwilson Feb 5, 2019
a6fcd30
Start pod lib lint CI for IAM (#2347)
paulb777 Feb 5, 2019
9be3038
Update gRPC certificate bundles locations for Firebase 5.16 (#2353)
wilhuff Feb 6, 2019
a2e13d5
Resolve hard dependency of GameKit (#2355)
Feb 6, 2019
9b3654b
C++ migration: port write stream-related part of `FSTRemoteStore` (#2…
var-const Feb 7, 2019
e8b0c1f
C++ migration: make all methods of `FSTRemoteStore` delegate to C++ (…
var-const Feb 7, 2019
10f50bf
Add NS_ASSUME_NONNULL_NOTATION for game center sign in (#2359)
Feb 7, 2019
0074c79
Update CI to use CocoaPods 1.6.0 (#2360)
paulb777 Feb 7, 2019
a22b4cd
Pass FSTMutations using a vector (#2357)
var-const Feb 8, 2019
13a7066
C++ migration: eliminate `FSTRemoteStore` (#2338)
var-const Feb 8, 2019
26f021a
Fix a bug where sign in with email link always return isNewUser as fa…
Feb 8, 2019
c8899e2
Firebase In-app messaging callbacks (#2354)
christibbs Feb 8, 2019
f2f413c
Fix a bug where sign in with Game Center doesn’t return additional us…
Feb 8, 2019
520ea85
Fix a bug where unlinking emailpassword doesn’t remove provider data …
Feb 9, 2019
c422806
C++ migration: port `FSTTransaction` (#2362)
var-const Feb 12, 2019
38df2e0
Remove swift sample for Auth (#2371)
Feb 12, 2019
c27c67a
Fix FIAM Travic CI issues (#2380)
christibbs Feb 12, 2019
571c825
update changelog for release (#2383)
charlotteliang Feb 12, 2019
0f32878
Forbid queries endAt an uncommitted server timestamp. (#2382)
rsgowman Feb 13, 2019
83b5683
Deprecate setMinimumSessionInterval (#2305)
allenktv Feb 13, 2019
3d3509a
Create umbrella header for FIAM (#2392)
ryanwilson Feb 14, 2019
c09966e
Split Auth unit tests (#2396)
Feb 15, 2019
5efbb08
Add a ToString function to create human-readable debug descriptions (…
var-const Feb 15, 2019
b3f2abc
Split auth api tests into multiple cases (#2399)
Feb 19, 2019
593774b
E2e tests split (#2401)
Feb 19, 2019
19fa24c
C++ migration: port `FSTDocumentViewChange` (#2388)
var-const Feb 19, 2019
6e4af0f
Fix import references to other pod's headers to fix pod lib lint (#2409)
paulb777 Feb 20, 2019
b7a5b34
Add style.sh details to README (#2411)
paulb777 Feb 21, 2019
056342d
Be sure to validate return code when calling sysctlbyname function (C…
dloic Feb 21, 2019
b608855
Stop pushing extra tags (#2413)
paulb777 Feb 21, 2019
42c5ae1
Open source InstanceID (#2414)
paulb777 Feb 21, 2019
a736773
IID docs, versions, and pod-lib-lint (#2415)
paulb777 Feb 21, 2019
4209aea
Merging the 5.17.0 release into master (#2416)
ryanwilson Feb 22, 2019
fb00931
Move Xcode 9.4 tests to cron since support won't be required next mon…
paulb777 Feb 22, 2019
d232d1c
Restore FIRInstanceIDWithFCMTest.m (#2417)
paulb777 Feb 22, 2019
6b026aa
os_log Implementation of GULLogger (#2374)
bstpierr Feb 22, 2019
82fd4b9
Fix race causing occasional flake (#2427)
paulb777 Feb 22, 2019
9c41c87
Fix GoogleUtilities regression for Firestore builds (#2431)
paulb777 Feb 22, 2019
f76ae21
Fix GoogleUtilities regression for Firestore builds 2 (#2433)
paulb777 Feb 23, 2019
2e77efd
Generic IDP support (#2405)
Yue-Wang-Google Feb 23, 2019
2c2614e
Fix typo in header documentation. (#2429)
ryanwilson Feb 23, 2019
7140078
Fix GULLogger file structure (#2437)
paulb777 Feb 25, 2019
2a10f5b
Update to CocoaPods 1.6.1 (#2436)
paulb777 Feb 25, 2019
075e586
Add ability to set a timeout on Functions. (#2329)
bklimt Feb 25, 2019
b635b09
M44 release notes update (#2425)
paulb777 Feb 25, 2019
9cddf51
Added encrypted credential files and enable integration tests (#2412)
Feb 25, 2019
7cc0a9b
C++ migration: port `FSTDocumentViewChangeSet` (#2406)
var-const Feb 25, 2019
1b777ac
Fix IID singleton usage. (#2446)
ryanwilson Feb 26, 2019
8ffd959
FirebaseMessaging: `NSUserDefaults` replaced by `GULUserDefaults` (#2…
maksymmalyhin Feb 26, 2019
b57fc82
Disable index-while-compiling in Travis (#2452)
ryanwilson Feb 27, 2019
7160526
Fix logger warning on iOS 7. (#2453)
ryanwilson Feb 27, 2019
cd8938d
Enable code coverage for AllUnitTests_iOS target (#2450)
maksymmalyhin Feb 27, 2019
6364b34
Resolve issue with char * casting in format string invocation (#2454)
bstpierr Feb 27, 2019
066593d
Add FIAM M44 release notes (#2395)
christibbs Feb 28, 2019
c95f242
Update CHANGELOG.md (#2460)
Feb 28, 2019
ca38562
Fix build for non-clang compilers (#2391)
rsgowman Mar 1, 2019
48009aa
C++ migration: port `FSTViewSnapshot` (#2441)
var-const Mar 1, 2019
b9f2542
Fix build with gcc (#2463)
rsgowman Mar 1, 2019
4dfebfc
FIRStorageUploadTask: fail on invalid file URL (#2458)
maksymmalyhin Mar 4, 2019
ec73a6d
Ensure ArraySortedMap is actually sorted (#2393)
rsgowman Mar 4, 2019
49460d1
Update CHANGELOG for Firestore v1.0.2 (#2467)
wilhuff Mar 4, 2019
213e427
C++: make internal Objective-C API wrap `DocumentSnapshot` from core …
var-const Mar 4, 2019
3ccbdcd
Fix Functions unit tests for 32bit targets (#2468)
paulb777 Mar 4, 2019
dbf6379
Fix for CocoaPods 1.6 (#2472)
christibbs Mar 5, 2019
cde3064
Update Changelog for Firebase Storage (#2464)
schmidt-sebastian Mar 5, 2019
0016825
Make FCM and InstanceID compatible with tvOS (#2428)
charlotteliang Mar 5, 2019
61a7fc1
Improved query performance in the face of subcollections. (#2471)
mikelehen Mar 5, 2019
9848883
Release 5.18.0 (#2477)
ryanwilson Mar 5, 2019
b5ff928
Fix Functions IntegrationTests for 32bit architectures (#2480)
paulb777 Mar 6, 2019
e04f5d2
C++ migration: make `FIRDocumentReference` implementation delegate to…
var-const Mar 6, 2019
a6c60ac
Stop Xcode 9 testing (#2482)
paulb777 Mar 6, 2019
657f53a
Adding FieldValue.increment() (#2075)
schmidt-sebastian Mar 6, 2019
55a3ac6
Update release notes for Functions. (#2475)
bklimt Mar 7, 2019
286e8f2
Introduce Zip File Builder (in Swift) (#2407)
ryanwilson Mar 7, 2019
6f7ba7a
Switch FieldValue to use immutable::sorted_map (instead of std::map) …
rsgowman Mar 7, 2019
8c770f5
Use CaseIterable from Xcode 10. (#2484)
ryanwilson Mar 7, 2019
032f0bf
Adding unit tests for InstanceID tvOS support (#2483)
charlotteliang Mar 7, 2019
ee10c4e
Use test specs for Functions unit tests (#1864)
paulb777 Mar 8, 2019
ef873ff
Add xcov instructions in README (#2494)
Corrob Mar 8, 2019
bd0b8e9
Collection Group Query Internals (#2378)
mikelehen Mar 8, 2019
3c10927
Update CHANGELOG for 5.18.0 (#2474)
ryanwilson Mar 9, 2019
7abbcab
Add missing nil check (#2488)
paulb777 Mar 9, 2019
d100e02
Restore GULLogger APIs, unit tests, and contents (#2504)
paulb777 Mar 11, 2019
8a86551
Delete test with new (#2514)
paulb777 Mar 11, 2019
6ef85e4
Change sample code to use "microsoft.com" instead of string constant,…
Yue-Wang-Google Mar 11, 2019
0956f5d
Send Firebase user agent from FIRInstanceIDCheckinService directly (#…
maksymmalyhin Mar 11, 2019
b2bcf8f
Use free() for memory allocated with malloc. (#2513)
rsgowman Mar 11, 2019
847d9dd
FIRDynamicLink: preserve all parameters passed to initializer (#2478)
maksymmalyhin Mar 11, 2019
c2f6b78
Add community supported tvOS and macOS for Functions (#2506)
paulb777 Mar 11, 2019
681a574
Add image on notification support (#2491)
charlotteliang Mar 11, 2019
97ccf37
Use UIScreen mainScreen bounds rather than UIApplicationDelegate wind…
christibbs Mar 11, 2019
061a97d
make VerifyAssertion is valid with pendingToken (#2521)
Yue-Wang-Google Mar 12, 2019
1363332
Update CHANGELOG for Firestore v1.1.0 (#2520)
wilhuff Mar 12, 2019
e53d552
Allow Bundle IDs that have a valid prefix - strict validation (#2515)
maksymmalyhin Mar 12, 2019
dc31021
Only assign message validation regex once (#2523)
ryanwilson Mar 12, 2019
8c16157
Remove unused loggerWithLevel parameter (#2524)
paulb777 Mar 12, 2019
7358e90
Fix build (unused parameter) under mac/cmake/clang (#2526)
rsgowman Mar 12, 2019
b67bc10
deprecate Microsoft and Yahoo Auth Provider ID (#2517)
Yue-Wang-Google Mar 12, 2019
6a38e08
FIAM release notes for M45 (#2532)
christibbs Mar 12, 2019
9c95d61
Update project and fix warnings (#2531)
wilhuff Mar 12, 2019
8328f78
Update CHANGELOG.md (#2536)
dmandar Mar 12, 2019
b1f909e
Don't create credential when VerifyAssertionResponse is empty (#2530)
Yue-Wang-Google Mar 13, 2019
216c77b
Adding deprecation warning and update CHANGELOG (#2535)
charlotteliang Mar 13, 2019
ee8d90a
Update Changelog for Auth v5.4.1 (#2538)
Yue-Wang-Google Mar 13, 2019
bf0a2cc
M45 Core release notes (#2537)
paulb777 Mar 13, 2019
7cbd945
Moving FIRAnalyticsConfiguration calls to Analytics. (#2516)
ryanwilson Mar 13, 2019
45d2fb2
extract errorMessage directly from response when server returns 200 (…
Yue-Wang-Google Mar 13, 2019
9f62410
Implement PatchingDeletedDocumentsDoesNothing test (#2528)
rsgowman Mar 13, 2019
37842fa
GoogleUtilities 5.4.0 (#2519)
paulb777 Mar 13, 2019
8061301
File directory for tvOS should change from NSApplicationSupportDirect…
charlotteliang Mar 13, 2019
6d24fa6
Update Auth CHANGELOG.md (#2549)
Mar 13, 2019
ed2b99a
Disable Facebook API tests (#2547)
Mar 13, 2019
ff76c8a
FIRInstanceIDCheckinService: make sure tasks are not submitted to an …
maksymmalyhin Mar 14, 2019
e524a8d
Fix GULResetLogger API breakage (#2552)
paulb777 Mar 14, 2019
8ed8504
Rename ApplicationSupportDirectory in IID tests (#2553)
charlotteliang Mar 14, 2019
fabaa8b
Clean the pod cache before starting. (#2554)
ryanwilson Mar 14, 2019
23191da
InstanceID changelog update (#2557)
maksymmalyhin Mar 14, 2019
9502e8d
Restore GoogleUtilities 5.3.7 - revert os_log changes (#2556)
paulb777 Mar 14, 2019
d5e197d
Overwrite CoreDiagnostics framework with framework passed in. (#2560)
ryanwilson Mar 14, 2019
2ac4f6d
Avoid using NSRegularExpression in FIRApp (b/65122393) (#2529)
maksymmalyhin Mar 15, 2019
92dcff1
Changes to build m45 zip (#2561)
paulb777 Mar 15, 2019
9c3cb40
Add a run-all-checks script (#2533)
wilhuff Mar 15, 2019
291cab6
Fix resources packaging. (#2567)
ryanwilson Mar 15, 2019
54763ba
Disable flaky tests in FIAM (#2568)
christibbs Mar 15, 2019
2d297eb
Fix method names in CHANGELOG (#2570)
ryanwilson Mar 15, 2019
0643b36
C++ migration: make `FIRFirestore` implementation delegate to core AP…
var-const Mar 15, 2019
2ae939b
Revert "Disable Facebook API tests (#2547)" (#2566)
Mar 15, 2019
1e6305f
Travis: when linting Firestore, only lint iOS (#2569)
wilhuff Mar 16, 2019
2f8570f
Revert "Revert "Disable Facebook API tests (#2547)" (#2566)" (#2573)
paulb777 Mar 16, 2019
966ad68
Fix typos (#2576)
paulb777 Mar 18, 2019
128e1b0
Retain OAuthProvider instance in sample app (#2577)
Yue-Wang-Google Mar 18, 2019
accf22b
Upgrade project to CocoaPods 1.6.1 (#2578)
wilhuff Mar 18, 2019
2d94344
update the changelog (#2583)
charlotteliang Mar 18, 2019
714bb34
Revert #2491 (#2582)
paulb777 Mar 18, 2019
e4dcc96
Eliminate Objective-C BOOL in Firestore/core (#2574)
wilhuff Mar 19, 2019
fd8947c
Port FIRSnapshotMetadata to C++ (#2580)
wilhuff Mar 19, 2019
6cd4f44
Create ObjectValue as a wrapper around a FieldValue which contains a …
rsgowman Mar 19, 2019
3c3fe79
Fix for issue where matchesshortlinkformat was returning true for all…
dmandar Mar 19, 2019
ef6c538
Release 5.19.0 (#2589)
paulb777 Mar 20, 2019
7babc0a
Port FIRQuerySnapshot to C++ (#2581)
wilhuff Mar 20, 2019
6259a98
Show qualified usage of Timestamp (#2594)
wilhuff Mar 20, 2019
38496c4
Add DelayedConstructor<T> (#2579)
wilhuff Mar 20, 2019
811251d
Exclude sub-packages of abseil that are problematic (#2597)
wilhuff Mar 20, 2019
dd0ae1d
Temporarily make FIAM tests non-required (#2596)
christibbs Mar 20, 2019
95cdd5d
Update tvOS and macOS README (#2598)
paulb777 Mar 20, 2019
438d49a
Update Carthage instructions for FirebaseMLNLSmartReplyBinary (#2599)
paulb777 Mar 21, 2019
ed2d74c
b/62961699: Use :nodoc: to prevent methods from showing up in referen…
mikelehen Mar 21, 2019
1578626
Remove stale roadmap items (#2605)
paulb777 Mar 21, 2019
1e08a55
GULLogger - count errors and warnigns (#2601)
maksymmalyhin Mar 21, 2019
38815b0
Add xcgmock (#2595)
wilhuff Mar 21, 2019
c4527b1
Rework gRPC certificate loading one last time (#2606)
wilhuff Mar 21, 2019
378f4db
Add support to [de]serialize missing FV types to the remote serialize…
rsgowman Mar 22, 2019
c6da7d6
GULLogger - issue count synchronous getters (#2610)
maksymmalyhin Mar 22, 2019
b34a278
Ensure token refresh notification is triggered any time a new token i…
charlotteliang Mar 22, 2019
7721591
Port FSTLocalDocumentsView to C++ (#2489)
wilhuff Mar 22, 2019
b76c843
Improve error message (#2614)
paulb777 Mar 22, 2019
3c469b3
Fix all IID analyzer warnings (#2613)
charlotteliang Mar 23, 2019
69c8e52
Avoid retain cycles in parent pointers (#2621)
wilhuff Mar 24, 2019
0738c0e
Fix handler for multiple calls of -[FIRInstanceID instanceIDWithHandl…
maksymmalyhin Mar 24, 2019
4cb3160
Clean up warnings in the Firestore project (#2622)
wilhuff Mar 25, 2019
c2a3d04
Port FSTDocumentSet to C++ (#2608)
wilhuff Mar 25, 2019
675e74a
Add missing #include <ostream> (#2616)
wilhuff Mar 25, 2019
8e37cfe
Alter testutil::*Doc to return shared_ptrs. (#2546)
rsgowman Mar 25, 2019
3057672
Support ERROR_INVALID_PROVIDER_ID in Firebase Auth. (#2629)
Yue-Wang-Google Mar 25, 2019
080c64d
Rework the IWYU test to handle types with multiple valid sources (#2633)
wilhuff Mar 25, 2019
ce07f8d
Port FSTListenOptions to C++ (#2617)
wilhuff Mar 26, 2019
28e8d23
fixed conflict
1amageek Mar 26, 2019
1319e20
fixed access control
1amageek Mar 26, 2019
f644ba0
add extension DocumentSnapshot
1amageek Mar 26, 2019
f66684b
add DocumentSnapshot test
1amageek Mar 26, 2019
28c3e94
fixed style
1amageek Mar 26, 2019
b353174
add DocumentReference codable
1amageek Mar 26, 2019
7712528
fix DocumentReference+Codable
1amageek Mar 26, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 15 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
Example/Auth/Sample/Sample.entitlements
Example/Auth/Sample/GoogleService-Info_multi.plist
Example/Auth/Sample/Application.plist
Example/Auth/Sample/AuthCredentials.h
Example/Auth/Sample/GoogleService-Info_multi.plist
Example/Auth/Sample/GoogleService-Info.plist
Example/Auth/Sample/Application.plist
Example/Auth/SwiftSample/GoogleService-Info.plist
Example/Auth/SwiftSample/Info.plist
Example/Auth/SwiftSample/AuthCredentials.swift
Example/Auth/Sample/Sample.entitlements
Example/Auth/ApiTests/AuthCredentials.h

Example/Database/App/GoogleService-Info.plist

Example/Storage/App/GoogleService-Info.plist

Secrets.tar

# OS X
.DS_Store

Expand All @@ -33,6 +32,13 @@ DerivedData
*.hmap
*.ipa

# Swift Package Manager
*/.build
ZipBuilder/Packages
ZipBuilder/*.xcodeproj
ZipBuilder/Package.resolved


# IntelliJ
.idea

Expand Down Expand Up @@ -75,3 +81,6 @@ Ninja

# Visual Studio
/.vs

# CocoaPods generate
gen/
100 changes: 20 additions & 80 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,7 @@ jobs:
- brew install clang-format
- brew install swiftformat
script:
- ./scripts/check_whitespace.sh
- ./scripts/check_copyright.sh
- ./scripts/check_no_module_imports.sh
- ./scripts/check_test_inclusion.py
- ./scripts/style.sh test-only $TRAVIS_COMMIT_RANGE
# Google C++ style compliance
- ./scripts/lint.sh $TRAVIS_COMMIT_RANGE
- ./scripts/check.sh --test-only $TRAVIS_COMMIT_RANGE

# The order of builds matters (even though they are run in parallel):
# Travis will schedule them in the same order they are listed here.
Expand All @@ -37,7 +31,17 @@ jobs:

- stage: test
env:
- PROJECT=InAppMessagingDisplay PLATFORM=iOS METHOD=xcodebuild
- PROJECT=Functions PLATFORM=iOS METHOD=pod-lib-lint
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec --use-libraries
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec --use-modular-headers

- stage: test
env:
- PROJECT=InAppMessaging PLATFORM=iOS METHOD=xcodebuild
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
Expand Down Expand Up @@ -65,9 +69,10 @@ jobs:
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseAuthInterop.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseDatabase.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseDynamicLinks.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInstanceID.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseMessaging.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseStorage.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessaging.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessagingDisplay.podspec

- stage: test
Expand All @@ -78,7 +83,7 @@ jobs:
script:
# Eliminate the one warning from BoringSSL when CocoaPods 1.6.0 is available.
# The travis_wait is necessary because the command takes more than 10 minutes.
- travis_wait 45 ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFirestore.podspec --allow-warnings --no-subspecs
- travis_wait 30 ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFirestore.podspec --platforms=ios --allow-warnings --no-subspecs

# pod lib lint to check build and warnings for static library build - only on cron jobs
- stage: test
Expand All @@ -94,10 +99,11 @@ jobs:
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseAuthInterop.podspec --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseDatabase.podspec --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseDynamicLinks.podspec --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseInstanceID.podspec --use-libraries
# The Protobuf dependency of FirebaseMessaging has warnings with --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseMessaging.podspec --use-libraries --allow-warnings
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseStorage.podspec --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessaging.podspec --use-libraries
- travis_retry ./scripts/if_cron.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessagingDisplay.podspec --use-libraries

- stage: test
Expand All @@ -121,44 +127,7 @@ jobs:

# Alternative platforms

# Xcode 9
- stage: test
osx_image: xcode9.4
env:
- PROJECT=Firebase PLATFORM=iOS METHOD=xcodebuild
before_install:
- npm install ios-sim -g
- ios-sim start --devicetypeid "com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus, 11.3"
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM

- stage: test
osx_image: xcode9.4
env:
- PROJECT=InAppMessagingDisplay PLATFORM=iOS METHOD=xcodebuild
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM

- stage: test
osx_image: xcode9.4
env:
- PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD

- stage: test
env:
- PROJECT=Firestore PLATFORM=macOS METHOD=cmake
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD

# Test Firestore on Xcode 8 to use old llvm to ensure C++ portability.
- stage: test
osx_image: xcode8.3
env:
Expand All @@ -168,37 +137,6 @@ jobs:
script:
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM $METHOD

# Xcode 9 may find lint errors that don't show up in Xcode 10 (#2081)
- stage: test
osx_image: xcode9.4
env:
- PROJECT=Firebase PLATFORM=iOS METHOD=pod-lib-lint
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh GoogleUtilities.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseCore.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseAnalyticsInterop.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseAuth.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseAuthInterop.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseDatabase.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseDynamicLinks.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseMessaging.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseStorage.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFunctions.podspec
- travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseInAppMessagingDisplay.podspec

- stage: test
osx_image: xcode9.4
env:
- PROJECT=Firestore PLATFORM=iOS METHOD=pod-lib-lint
before_install:
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
script:
# Eliminate the one warning from BoringSSL when CocoaPods 1.6.0 is available.
# The travis_wait is necessary because the command takes more than 10 minutes.
- travis_wait 45 ./scripts/if_changed.sh ./scripts/pod_lib_lint.sh FirebaseFirestore.podspec --allow-warnings --no-subspecs

# Community-supported platforms

- stage: test
Expand Down Expand Up @@ -278,6 +216,8 @@ jobs:
- PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild SANITIZERS=asan
- env:
- PROJECT=Firestore PLATFORM=iOS METHOD=xcodebuild SANITIZERS=tsan
- env:
- PROJECT=InAppMessaging PLATFORM=iOS METHOD=xcodebuild

# TODO(varconst): enable if it's possible to make this flag work on build
# stages. It's supposed to avoid waiting for jobs that are allowed to fail
Expand Down
3 changes: 2 additions & 1 deletion Carthage.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInvitesBinary.jso
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLModelInterpreterBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLNLLanguageIDBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLNLSmartReplyBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLNaturalLanguageBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionBarcodeModelBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionBinary.json"
Expand All @@ -65,7 +66,7 @@ binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.jso
into the Xcode project and make sure they're added to the
`Copy Bundle Resources` Build Phase :
- For Firestore:
- ./Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates-Firestore.bundle
- ./Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates.bundle
- For Invites:
- ./Carthage/Build/iOS/FirebaseInvites.framework/GoogleSignIn.bundle
- ./Carthage/Build/iOS/FirebaseInvites.framework/GPPACLPickerResources.bundle
Expand Down
36 changes: 36 additions & 0 deletions DocumentReference+Codable.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//
// DocumentReference+Codable.swift
// BoringSSL-GRPC-iOS
//
// Created by 1amageek on 2019/03/26.
//

import Foundation
import FirebaseFirestore

/**
* A protocol describing the encodable properties of a Timestamp.
*
* Note: this protocol exists as a workaround for the Swift compiler: if the Timestamp class
* was extended directly to conform to Codable, the methods implementing the protocol would be need
* to be marked required but that can't be done in an extension. Declaring the extension on the
* protocol sidesteps this issue.
*/
private protocol CodableDocumentReference: Codable {

}


extension CodableDocumentReference {
public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
_ = try container.decode(DocumentReference.self)
throw FirestoreDecodingError.decodingIsNotSupported
}

public func encode(to encoder: Encoder) throws {
// var container = encoder.singleValueContainer()
}
}

extension DocumentReference: CodableDocumentReference { }
67 changes: 67 additions & 0 deletions Example/Auth/ApiTests/AccountInfoTests.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* Copyright 2019 Google
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#import <XCTest/XCTest.h>

#import "FIRAuthApiTestsBase.h"

/** The testing email address for testCreateAccountWithEmailAndPassword. */
static NSString *const kOldUserEmail = @"[email protected]";

/** The testing email address for testUpdatingUsersEmail. */
static NSString *const kNewUserEmail = @"[email protected]";

@interface AccountInfoTests : FIRAuthApiTestsBase

@end

@implementation AccountInfoTests

- (void)testUpdatingUsersEmail {
SKIP_IF_ON_MOBILE_HARNESS
FIRAuth *auth = [FIRAuth auth];
if (!auth) {
XCTFail(@"Could not obtain auth object.");
}

__block NSError *apiError;
XCTestExpectation *expectation =
[self expectationWithDescription:@"Created account with email and password."];
[auth createUserWithEmail:kOldUserEmail
password:@"password"
completion:^(FIRAuthDataResult *user, NSError *error) {
apiError = error;
[expectation fulfill];
}];
[self waitForExpectationsWithTimeout:kExpectationsTimeout handler:nil];
expectation = [self expectationWithDescription:@"Created account with email and password."];
XCTAssertEqualObjects(auth.currentUser.email, kOldUserEmail);
XCTAssertNil(apiError);

[auth.currentUser updateEmail:kNewUserEmail
completion:^(NSError *_Nullable error) {
apiError = error;
[expectation fulfill];
}];
[self waitForExpectationsWithTimeout:kExpectationsTimeout handler:nil];
XCTAssertNil(apiError);
XCTAssertEqualObjects(auth.currentUser.email, kNewUserEmail);

// Clean up the created Firebase user for future runs.
[self deleteCurrentUser];
}

@end
34 changes: 34 additions & 0 deletions Example/Auth/ApiTests/AnonymousAuthTests.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright 2019 Google
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#import <XCTest/XCTest.h>

#import "FIRAuthApiTestsBase.h"

@interface AnonymousAuthTests : FIRAuthApiTestsBase

@end

@implementation AnonymousAuthTests

- (void)testSignInAnonymously {
[self signInAnonymously];
XCTAssertTrue([FIRAuth auth].currentUser.anonymous);

[self deleteCurrentUser];
}

@end
17 changes: 17 additions & 0 deletions Example/Auth/ApiTests/Auth_ApiTests-Bridging-Header.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
* Copyright 2019 Google
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#import "FIRAuthApiTestsBase.h"
Loading