mirror of
https://github.com/caoer/CodableFirebase.git
synced 2026-06-12 07:58:35 +08:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3cae6e90d9 | ||
|
|
222b080693 | ||
|
|
5b8627dbbe | ||
|
|
1384814716 | ||
|
|
b0e86866a0 | ||
|
|
0c60f70d91 | ||
|
|
df9dfe1dda |
@@ -1,6 +1,6 @@
|
|||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = "CodableFirebase"
|
s.name = "CodableFirebase"
|
||||||
s.version = "0.0.5"
|
s.version = "0.0.7"
|
||||||
s.summary = "Use Codable with Firebase"
|
s.summary = "Use Codable with Firebase"
|
||||||
s.description = "This library helps you use your custom models that conform to Codable protocol with Firebase Realtime Database and Firestore"
|
s.description = "This library helps you use your custom models that conform to Codable protocol with Firebase Realtime Database and Firestore"
|
||||||
s.homepage = "https://github.com/alickbass/CodableFirebase"
|
s.homepage = "https://github.com/alickbass/CodableFirebase"
|
||||||
|
|||||||
@@ -383,6 +383,8 @@ extension _FirebaseEncoder {
|
|||||||
return try self.box((value as! Data))
|
return try self.box((value as! Data))
|
||||||
} else if T.self == URL.self || T.self == NSURL.self {
|
} else if T.self == URL.self || T.self == NSURL.self {
|
||||||
return self.box((value as! URL).absoluteString)
|
return self.box((value as! URL).absoluteString)
|
||||||
|
} else if T.self == Decimal.self || T.self == NSDecimalNumber.self {
|
||||||
|
return (value as! NSDecimalNumber)
|
||||||
} else if options.skipFirestoreTypes && (value is FirestoreEncodable) {
|
} else if options.skipFirestoreTypes && (value is FirestoreEncodable) {
|
||||||
guard let value = value as? NSObject else {
|
guard let value = value as? NSObject else {
|
||||||
throw DocumentReferenceError.typeIsNotNSObject
|
throw DocumentReferenceError.typeIsNotNSObject
|
||||||
@@ -391,11 +393,20 @@ extension _FirebaseEncoder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// The value should request a container from the _FirebaseEncoder.
|
// The value should request a container from the _FirebaseEncoder.
|
||||||
let depth = storage.count
|
let depth = self.storage.count
|
||||||
try value.encode(to: self)
|
do {
|
||||||
|
try value.encode(to: self)
|
||||||
|
} catch {
|
||||||
|
// If the value pushed a container before throwing, pop it back off to restore state.
|
||||||
|
if self.storage.count > depth {
|
||||||
|
let _ = self.storage.popContainer()
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
|
||||||
// The top container should be a new container.
|
// The top container should be a new container.
|
||||||
guard storage.count > depth else {
|
guard self.storage.count > depth else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.0.5</string>
|
<string>0.0.7</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
|
|||||||
@@ -109,6 +109,11 @@ class TestCodableFirestore: XCTestCase {
|
|||||||
_testRoundTrip(of: TopLevelWrapper(date), expected: ["value": date])
|
_testRoundTrip(of: TopLevelWrapper(date), expected: ["value": date])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testDecimalValue() {
|
||||||
|
let value = Decimal(2)
|
||||||
|
_testRoundTrip(of: TopLevelWrapper(value), expected: ["value": value])
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - GeoPoint & Document Reference
|
// MARK: - GeoPoint & Document Reference
|
||||||
func testEncodingGeoPoint() {
|
func testEncodingGeoPoint() {
|
||||||
let point = GeoPoint(latitude: 2, longitude: 2)
|
let point = GeoPoint(latitude: 2, longitude: 2)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# CodableFirebase
|
# CodableFirebase
|
||||||
Use [Codable](https://developer.apple.com/documentation/swift/codable) with [Firebase](https://firebase.google.com)
|
Use [Codable](https://developer.apple.com/documentation/swift/codable) with [Firebase](https://firebase.google.com)
|
||||||
|
|
||||||
[]()
|
[](https://github.com/alickbass/CodableFirebase)
|
||||||
[](https://github.com/Carthage/Carthage)
|
[](https://github.com/Carthage/Carthage)
|
||||||
[](https://travis-ci.org/alickbass/CodableFirebase)
|
[](https://travis-ci.org/alickbass/CodableFirebase)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user