Skip to content

Commit 6e74c62

Browse files
committed
Update methods to use encodeAsMap.
1 parent c5e313c commit 6e74c62

File tree

3 files changed

+41
-45
lines changed
  • firebase-firestore/src

3 files changed

+41
-45
lines changed

firebase-firestore/src/androidMain/kotlin/dev/gitlive/firebase/firestore/firestore.kt

+12-15
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,13 @@ actual class WriteBatch(val android: com.google.firebase.firestore.WriteBatch) {
107107
merge: Boolean,
108108
vararg fieldsAndValues: Pair<String, Any?>
109109
): WriteBatch {
110-
val serializedItem = encode(strategy, data, encodeDefaults) as Map<String, Any>?
111-
val serializedFieldAndValues = fieldsAndValues.takeUnless { fieldsAndValues.isEmpty() }
112-
?.map { (field, value) -> field to encode(value, encodeDefaults) }?.toMap()
110+
val serializedItem = encodeAsMap(strategy, data, encodeDefaults)
111+
val serializedFieldAndValues = encodeAsMap(fieldsAndValues = fieldsAndValues)
113112

114-
val result = serializedItem?.let { item ->
115-
serializedFieldAndValues?.let { fieldsAndValues ->
116-
item + fieldsAndValues
117-
}
118-
} as Any? ?: return this
113+
val result = if (serializedFieldAndValues != null)
114+
serializedItem + serializedFieldAndValues
115+
else
116+
serializedItem
119117

120118
if (merge) {
121119
android.set(documentRef.android, result, SetOptions.merge())
@@ -148,14 +146,13 @@ actual class WriteBatch(val android: com.google.firebase.firestore.WriteBatch) {
148146
encodeDefaults: Boolean,
149147
vararg fieldsAndValues: Pair<String, Any?>
150148
): WriteBatch {
151-
val serializedItem = encode(data, encodeDefaults) as Map<String, Any>
152-
153-
val serializedFieldAndValues = fieldsAndValues.takeUnless { fieldsAndValues.isEmpty() }
154-
?.map { (field, value) -> field to encode(value, encodeDefaults) }?.toMap()
149+
val serializedItem = encodeAsMap(strategy, data, encodeDefaults)
150+
val serializedFieldAndValues = encodeAsMap(fieldsAndValues = fieldsAndValues)
155151

156-
val result = (serializedFieldAndValues?.let {
157-
serializedItem.plus(it)
158-
} ?: serializedItem)
152+
val result = if (serializedFieldAndValues != null)
153+
serializedItem + serializedFieldAndValues
154+
else
155+
serializedItem
159156

160157
return android.update(documentRef.android, result).let { this }
161158
}

firebase-firestore/src/iosMain/kotlin/dev/gitlive/firebase/firestore/firestore.kt

+17-15
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,15 @@ actual class WriteBatch(val ios: FIRWriteBatch) {
9898
merge: Boolean,
9999
vararg fieldsAndValues: Pair<String, Any?>
100100
): WriteBatch {
101-
val serializedItem = encode(strategy, data, encodeDefaults) as Map<String, Any>?
102-
val serializedFieldAndValues = fieldsAndValues.takeUnless { fieldsAndValues.isEmpty() }
103-
?.map { (field, value) -> field to encode(value, encodeDefaults) }?.toMap()
104-
val result = (serializedFieldAndValues?.let {
105-
serializedItem?.plus(it)
106-
} ?: serializedItem) as Map<Any?, *>
107-
108-
ios.setData(result, documentRef.ios, merge)
101+
val serializedItem = encodeAsMap(strategy, data, encodeDefaults)
102+
val serializedFieldAndValues = encodeAsMap(fieldsAndValues = fieldsAndValues)
103+
104+
val result = if (serializedFieldAndValues != null)
105+
serializedItem + serializedFieldAndValues
106+
else
107+
serializedItem
108+
109+
ios.setData(result as Map<Any?, *>, documentRef.ios, merge)
109110
return this
110111
}
111112

@@ -128,13 +129,14 @@ actual class WriteBatch(val ios: FIRWriteBatch) {
128129
encodeDefaults: Boolean,
129130
vararg fieldsAndValues: Pair<String, Any?>
130131
): WriteBatch {
131-
val serializedItem = encode(strategy, data, encodeDefaults) as Map<Any?, *>
132-
val serializedFieldAndValues = fieldsAndValues.associate { (field, value) -> field to encode(value, encodeDefaults) }
133-
134-
val result = serializedFieldAndValues?.let {
135-
serializedItem.plus(it)
136-
} ?: serializedItem
137-
return ios.updateData(result, documentRef.ios).let { this }
132+
val serializedItem = encodeAsMap(strategy, data, encodeDefaults)
133+
val serializedFieldAndValues = encodeAsMap(fieldsAndValues = fieldsAndValues)
134+
135+
val result = if (serializedFieldAndValues != null)
136+
serializedItem + serializedFieldAndValues
137+
else
138+
serializedItem
139+
return ios.updateData(result as Map<Any?, *>, documentRef.ios).let { this }
138140
}
139141

140142
actual inline fun update(documentRef: DocumentReference, vararg fieldsAndValues: Pair<FieldPath, Any?>) =

firebase-firestore/src/jsMain/kotlin/dev/gitlive/firebase/firestore/firestore.kt

+12-15
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,13 @@ actual class WriteBatch(val js: firebase.firestore.WriteBatch) {
9494
merge: Boolean,
9595
vararg fieldsAndValues: Pair<String, Any?>
9696
): WriteBatch {
97-
val serializedItem = encode(strategy, data, encodeDefaults) as Map<String, Any>?
98-
val serializedFieldAndValues = fieldsAndValues.takeUnless { fieldsAndValues.isEmpty() }
99-
?.map { (field, value) -> field to encode(value, encodeDefaults) }?.toMap()
97+
val serializedItem = encodeAsMap(strategy, data, encodeDefaults)
98+
val serializedFieldAndValues = encodeAsMap(fieldsAndValues = fieldsAndValues)
10099

101-
val result = serializedItem?.let { item ->
102-
serializedFieldAndValues?.let { fieldsAndValues ->
103-
item + fieldsAndValues
104-
}
105-
} as Any? ?: return this
100+
val result = if (serializedFieldAndValues != null)
101+
serializedItem + serializedFieldAndValues
102+
else
103+
serializedItem
106104

107105
if (merge) {
108106
js.set(documentRef.js, result, json("merge" to merge))
@@ -133,14 +131,13 @@ actual class WriteBatch(val js: firebase.firestore.WriteBatch) {
133131
encodeDefaults: Boolean,
134132
vararg fieldsAndValues: Pair<String, Any?>
135133
): WriteBatch {
136-
val serializedItem = encode(data, encodeDefaults) as Map<String, Any>
137-
138-
val serializedFieldAndValues = fieldsAndValues.takeUnless { fieldsAndValues.isEmpty() }
139-
?.map { (field, value) -> field to encode(value, encodeDefaults) }?.toMap()
134+
val serializedItem = encodeAsMap(strategy, data, encodeDefaults)
135+
val serializedFieldAndValues = encodeAsMap(fieldsAndValues = fieldsAndValues)
140136

141-
val result = (serializedFieldAndValues?.let {
142-
serializedItem.plus(it)
143-
} ?: serializedItem)
137+
val result = if (serializedFieldAndValues != null)
138+
serializedItem + serializedFieldAndValues
139+
else
140+
serializedItem
144141

145142
return js.update(documentRef.js, result).let { this }
146143
}

0 commit comments

Comments
 (0)