Skip to content

Commit b0e8686

Browse files
author
Oleksii Dykan
authored
Merge pull request #21 from alickbass/fix-decimal-encoding
Fix handling decimal value
2 parents df9dfe1 + 0c60f70 commit b0e8686

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

CodableFirebase/Encoder.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,8 @@ extension _FirebaseEncoder {
383383
return try self.box((value as! Data))
384384
} else if T.self == URL.self || T.self == NSURL.self {
385385
return self.box((value as! URL).absoluteString)
386+
} else if T.self == Decimal.self || T.self == NSDecimalNumber.self {
387+
return (value as! NSDecimalNumber)
386388
} else if options.skipFirestoreTypes && (value is FirestoreEncodable) {
387389
guard let value = value as? NSObject else {
388390
throw DocumentReferenceError.typeIsNotNSObject

CodableFirebaseTests/TestCodableFirestore.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,11 @@ class TestCodableFirestore: XCTestCase {
109109
_testRoundTrip(of: TopLevelWrapper(date), expected: ["value": date])
110110
}
111111

112+
func testDecimalValue() {
113+
let value = Decimal(2)
114+
_testRoundTrip(of: TopLevelWrapper(value), expected: ["value": value])
115+
}
116+
112117
// MARK: - GeoPoint & Document Reference
113118
func testEncodingGeoPoint() {
114119
let point = GeoPoint(latitude: 2, longitude: 2)

0 commit comments

Comments
 (0)