* Rewrite SelfDocumentID as a property wrapper
Make wrapped types conform to DocumentReferenceConvertible and use that
protocol to implement the conversion.
* Change DocumentReferenceConvertible to DocumentIDWrappable
* Make ServerTimestampWrappable use static functions
Use the same form as DocumentIDWrappable.
* Update extension String: ServerTimestampWrappable
* Use #if compiler, not #if swift
The FirebaseFirestoreSwift module is declared as conforming to Swift
4.0 so #if swift is still false, even when compiling with Swift 5.1.
Using #if compiler will see the actual compiler version. Property
wrappers don't depend on runtime features, so this works.
Also, allow Wrappable protocols to throw during conversions.
* Move ServerTimestamp into its own file
* Rewrite ServerTimestamp as a property wrapper
Add Swift4ServerTimestamp that behaves as before.
* Make ServerTimestampWrappable dictate timestamp conversion.
This makes the @ServerTimestamp property wrapper completely open to
extension by end users too.
* Rewrite FirestoreEncoderTests using assertThat
* Throw invalidValue for use of invalid top-level values
* Provide an message for not supported errors
* working serverTimestamp
* working FieldValue. Still need: document ref and ability to Eq of FieldValue
* DocumentReference implemented and testing works
* clean up header search path
* improving FieldValue enum comments
* run through formatting
* addressing comments
* formatted with swiftformat 0.35.7
* add missing bool->BOOL change
* undo unintended swift version change
* remove unwanted proj file change
* Annotate Transaction and WriteBatch methods as discardable
These methods exist to allow chaining if that's useful but chaining
isn't expected or required.
Note that Objective-C methods in these types are implicitly
@discardableResult and don't need any extra help.
* No need to explicitly discard results
* Fix typos in FIRCollectionReference docs
* Add support for CollectionReference.addDocument(from:)
* working serverTimestamp
* working FieldValue. Still need: document ref and ability to Eq of FieldValue
* DocumentReference implemented and testing works
* clean up header search path
* improving FieldValue enum comments
* run through formatting
* addressing comments
* formatted with swiftformat 0.35.7
* add missing bool->BOOL change
* undo unintended swift version change
* remove unwanted proj file change
* FIRInAppMessagingDisplayMessage and FIRInAppMessagingDisplayDelegate refactor + downstream changes
* More downstream changes from FIRInAppMessagingDisplayDelegate, calling through to app-side delegate from default display executor
* Add delegate property on FIRInAppMessaging
* Display SDK changes to pass through in app message with callbacks
* Headless SDK unit test refactoring
* Display test app downstream changes
* Pull in headless SDK in display app, no need to have this come in as a framework anymore
* Run scripts/style.sh
* Remove WIP test
* Refactor FIRIAMDIsplayExecutor to take an InAppMessaging object for testing
* Depend on FirebaseAnalyticsInterop in UI test app
* File imports for FIRInAppMessaging files
* Remove FirebaseInAppMessaging imports
* Add Firestore_SwiftTests_iOS target to Xcode
* Add FirebaseFirestoreSwift podspec
* Add Firestore_SwiftTests_iOS to the Podfile
* Add CodableGeoPoint and tests
* Version FirebaseFirestoreSwift separately