@@ -24,10 +24,10 @@ import platform.Foundation.*
24
24
import kotlin.collections.component1
25
25
import kotlin.collections.component2
26
26
27
- fun encode (value : Any? ) =
28
- dev.gitlive.firebase.encode(value, FIRServerValue .timestamp())
29
- fun <T > encode (strategy : SerializationStrategy <T > , value : T ): Any? =
30
- dev.gitlive.firebase.encode(strategy, value, FIRServerValue .timestamp())
27
+ fun encode (value : Any? , shouldEncodeElementDefault : Boolean ) =
28
+ dev.gitlive.firebase.encode(value, shouldEncodeElementDefault, FIRServerValue .timestamp())
29
+ fun <T > encode (strategy : SerializationStrategy <T > , value : T , shouldEncodeElementDefault : Boolean ): Any? =
30
+ dev.gitlive.firebase.encode(strategy, value, shouldEncodeElementDefault, FIRServerValue .timestamp())
31
31
32
32
actual val Firebase .database
33
33
by lazy { FirebaseDatabase (FIRDatabase .database()) }
@@ -110,17 +110,17 @@ actual class DatabaseReference internal constructor(
110
110
actual fun push () = DatabaseReference (ios.childByAutoId(), persistenceEnabled)
111
111
actual fun onDisconnect () = OnDisconnect (ios, persistenceEnabled)
112
112
113
- actual suspend fun setValue (value : Any? ) {
114
- ios.await(persistenceEnabled) { setValue(encode(value), it) }
113
+ actual suspend fun setValue (value : Any? , encodeDefaults : Boolean ) {
114
+ ios.await(persistenceEnabled) { setValue(encode(value, encodeDefaults ), it) }
115
115
}
116
116
117
- actual suspend fun <T > setValue (strategy : SerializationStrategy <T >, value : T ) {
118
- ios.await(persistenceEnabled) { setValue(encode(strategy, value), it) }
117
+ actual suspend fun <T > setValue (strategy : SerializationStrategy <T >, value : T , encodeDefaults : Boolean ) {
118
+ ios.await(persistenceEnabled) { setValue(encode(strategy, value, encodeDefaults ), it) }
119
119
}
120
120
121
121
@Suppress(" UNCHECKED_CAST" )
122
- actual suspend fun updateChildren (update : Map <String , Any ?>) {
123
- ios.await(persistenceEnabled) { updateChildValues(encode(update) as Map <Any ?, * >, it) }
122
+ actual suspend fun updateChildren (update : Map <String , Any ?>, encodeDefaults : Boolean ) {
123
+ ios.await(persistenceEnabled) { updateChildValues(encode(update, encodeDefaults ) as Map <Any ?, * >, it) }
124
124
}
125
125
126
126
actual suspend fun removeValue () {
@@ -157,16 +157,16 @@ actual class OnDisconnect internal constructor(
157
157
ios.await(persistenceEnabled) { cancelDisconnectOperationsWithCompletionBlock(it) }
158
158
}
159
159
160
- actual suspend fun setValue (value : Any ) {
161
- ios.await(persistenceEnabled) { onDisconnectSetValue(encode(value), it) }
160
+ actual suspend fun setValue (value : Any , encodeDefaults : Boolean ) {
161
+ ios.await(persistenceEnabled) { onDisconnectSetValue(encode(value, encodeDefaults ), it) }
162
162
}
163
163
164
- actual suspend fun <T > setValue (strategy : SerializationStrategy <T >, value : T ) {
165
- ios.await(persistenceEnabled) { onDisconnectSetValue(encode(strategy, value), it) }
164
+ actual suspend fun <T > setValue (strategy : SerializationStrategy <T >, value : T , encodeDefaults : Boolean ) {
165
+ ios.await(persistenceEnabled) { onDisconnectSetValue(encode(strategy, value, encodeDefaults ), it) }
166
166
}
167
167
168
- actual suspend fun updateChildren (update : Map <String , Any ?>) {
169
- ios.await(persistenceEnabled) { onDisconnectUpdateChildValues(update.mapValues { (_, it) -> encode(it) } as Map <Any ?, * >, it) }
168
+ actual suspend fun updateChildren (update : Map <String , Any ?>, encodeDefaults : Boolean ) {
169
+ ios.await(persistenceEnabled) { onDisconnectUpdateChildValues(update.mapValues { (_, it) -> encode(it, encodeDefaults ) } as Map <Any ?, * >, it) }
170
170
}
171
171
}
172
172
0 commit comments