@@ -7,17 +7,14 @@ package dev.gitlive.firebase.firestore
7
7
8
8
import com.google.firebase.Timestamp
9
9
import com.google.firebase.firestore.FieldValue
10
- import com.google.firebase.firestore.FirebaseFirestoreSettings
11
10
import com.google.firebase.firestore.SetOptions
12
11
import dev.gitlive.firebase.*
13
- import dev.gitlive.firebase.firestore.encode
14
12
import kotlinx.coroutines.channels.awaitClose
15
13
import kotlinx.coroutines.flow.callbackFlow
16
14
import kotlinx.coroutines.runBlocking
17
15
import kotlinx.coroutines.tasks.await
18
16
import kotlinx.serialization.DeserializationStrategy
19
17
import kotlinx.serialization.SerializationStrategy
20
- import kotlinx.serialization.serializer
21
18
22
19
@PublishedApi
23
20
internal inline fun <reified T > decode (value : Any? ): T =
@@ -41,12 +38,6 @@ actual fun Firebase.firestore(app: FirebaseApp) =
41
38
42
39
actual class FirebaseFirestore (val android : com.google.firebase.firestore.FirebaseFirestore ) {
43
40
44
- // actual var settings: FirebaseFirestoreSettings
45
- // get() = android.firestoreSettings.run { FirebaseFirestoreSettings(isPersistenceEnabled) }
46
- // set(value) {
47
- // android.firestoreSettings = value.run { Builder().setPersistenceEnabled(persistenceEnabled).build() }
48
- // }
49
-
50
41
actual fun collection (collectionPath : String ) = CollectionReference (android.collection(collectionPath))
51
42
52
43
actual fun document (documentPath : String ) = DocumentReference (android.document(documentPath))
@@ -60,15 +51,30 @@ actual class FirebaseFirestore(val android: com.google.firebase.firestore.Fireba
60
51
android.runTransaction { runBlocking { Transaction (it).func() } }.await()
61
52
62
53
actual suspend fun clearPersistence () =
63
- android.clearPersistence().await()
64
- .run { Unit }
54
+ android.clearPersistence().await().run { }
65
55
66
56
actual fun useEmulator (host : String , port : Int ) {
67
57
android.useEmulator(host, port)
68
- android.firestoreSettings = FirebaseFirestoreSettings .Builder ()
58
+ android.firestoreSettings = com.google.firebase.firestore. FirebaseFirestoreSettings .Builder ()
69
59
.setPersistenceEnabled(false )
70
60
.build()
71
61
}
62
+
63
+ actual fun setSettings (persistenceEnabled : Boolean? , sslEnabled : Boolean? , host : String? , cacheSizeBytes : Long? ) {
64
+ android.firestoreSettings = com.google.firebase.firestore.FirebaseFirestoreSettings .Builder ().also { builder ->
65
+ persistenceEnabled?.let { builder.setPersistenceEnabled(it) }
66
+ sslEnabled?.let { builder.isSslEnabled = it }
67
+ host?.let { builder.host = it }
68
+ cacheSizeBytes?.let { builder.cacheSizeBytes = it }
69
+ }.build()
70
+ }
71
+
72
+ actual suspend fun disableNetwork () =
73
+ android.disableNetwork().await().run { }
74
+
75
+ actual suspend fun enableNetwork () =
76
+ android.enableNetwork().await().run { }
77
+
72
78
}
73
79
74
80
actual class WriteBatch (val android : com.google.firebase.firestore.WriteBatch ) {
0 commit comments