Skip to content

Commit f615bc3

Browse files
committed
Merge remote-tracking branch 'GitLiveApp/master' into fix-on-disconnect
2 parents 83f0192 + 8daf907 commit f615bc3

File tree

14 files changed

+828
-163
lines changed

14 files changed

+828
-163
lines changed

firebase-auth/src/jvmTest/kotlin/dev/gitlive/firebase/auth/auth.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,6 @@ package dev.gitlive.firebase.auth
99
actual val emulatorHost: String = "10.0.2.2"
1010

1111
actual val context: Any = Unit
12+
13+
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
14+
actual annotation class IgnoreForAndroidUnitTest

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

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license.
33
*/
44

5+
@file:JvmName("databaseAndroid")
56
package dev.gitlive.firebase.database
67

78
import com.google.android.gms.tasks.Task
@@ -17,7 +18,6 @@ import dev.gitlive.firebase.internal.EncodedObject
1718
import dev.gitlive.firebase.Firebase
1819
import dev.gitlive.firebase.FirebaseApp
1920
import dev.gitlive.firebase.database.ChildEvent.Type
20-
import dev.gitlive.firebase.database.FirebaseDatabase.Companion.FirebaseDatabase
2121
import dev.gitlive.firebase.internal.android
2222
import dev.gitlive.firebase.internal.decode
2323
import dev.gitlive.firebase.internal.reencodeTransformation
@@ -52,23 +52,23 @@ suspend fun <T> Task<T>.awaitWhileOnline(database: FirebaseDatabase): T =
5252
.first()
5353

5454
actual val Firebase.database
55-
by lazy { FirebaseDatabase(com.google.firebase.database.FirebaseDatabase.getInstance()) }
55+
by lazy { FirebaseDatabase.getInstance(com.google.firebase.database.FirebaseDatabase.getInstance()) }
5656

5757
actual fun Firebase.database(url: String) =
58-
FirebaseDatabase(com.google.firebase.database.FirebaseDatabase.getInstance(url))
58+
FirebaseDatabase.getInstance(com.google.firebase.database.FirebaseDatabase.getInstance(url))
5959

6060
actual fun Firebase.database(app: FirebaseApp) =
61-
FirebaseDatabase(com.google.firebase.database.FirebaseDatabase.getInstance(app.android))
61+
FirebaseDatabase.getInstance(com.google.firebase.database.FirebaseDatabase.getInstance(app.android))
6262

6363
actual fun Firebase.database(app: FirebaseApp, url: String) =
64-
FirebaseDatabase(com.google.firebase.database.FirebaseDatabase.getInstance(app.android, url))
64+
FirebaseDatabase.getInstance(com.google.firebase.database.FirebaseDatabase.getInstance(app.android, url))
6565

66-
actual class FirebaseDatabase private constructor(val android: com.google.firebase.database.FirebaseDatabase) {
66+
actual class FirebaseDatabase internal constructor(val android: com.google.firebase.database.FirebaseDatabase) {
6767

6868
companion object {
6969
private val instances = WeakHashMap<com.google.firebase.database.FirebaseDatabase, FirebaseDatabase>()
7070

71-
internal fun FirebaseDatabase(
71+
internal fun getInstance(
7272
android: com.google.firebase.database.FirebaseDatabase
7373
) = instances.getOrPut(android) { dev.gitlive.firebase.database.FirebaseDatabase(android) }
7474
}
@@ -81,8 +81,14 @@ actual class FirebaseDatabase private constructor(val android: com.google.fireba
8181
actual fun reference() =
8282
DatabaseReference(NativeDatabaseReference(android.reference, persistenceEnabled))
8383

84-
actual fun setPersistenceEnabled(enabled: Boolean) =
85-
android.setPersistenceEnabled(enabled).also { persistenceEnabled = enabled }
84+
actual fun setPersistenceEnabled(enabled: Boolean) {
85+
android.setPersistenceEnabled(enabled)
86+
persistenceEnabled = enabled
87+
}
88+
89+
actual fun setPersistenceCacheSizeBytes(cacheSizeInBytes: Long) {
90+
android.setPersistenceCacheSizeBytes(cacheSizeInBytes)
91+
}
8692

8793
actual fun setLoggingEnabled(enabled: Boolean) =
8894
android.setLogLevel(Logger.Level.DEBUG.takeIf { enabled } ?: Logger.Level.NONE)

firebase-database/src/commonMain/kotlin/dev/gitlive/firebase/database/database.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ expect fun Firebase.database(app: FirebaseApp): FirebaseDatabase
3434
expect fun Firebase.database(app: FirebaseApp, url: String): FirebaseDatabase
3535

3636
expect class FirebaseDatabase {
37+
3738
fun reference(path: String): DatabaseReference
3839
fun reference(): DatabaseReference
39-
fun setPersistenceEnabled(enabled: Boolean)
4040
fun setLoggingEnabled(enabled: Boolean)
41+
fun setPersistenceEnabled(enabled: Boolean)
42+
fun setPersistenceCacheSizeBytes(cacheSizeInBytes: Long)
4143
fun useEmulator(host: String, port: Int)
4244

4345
fun goOffline()

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ import kotlinx.serialization.DeserializationStrategy
3939
import kotlinx.serialization.KSerializer
4040
import platform.Foundation.NSError
4141
import platform.Foundation.allObjects
42+
import platform.darwin.dispatch_queue_t
43+
import kotlin.collections.component1
44+
import kotlin.collections.component2
4245

4346
actual val Firebase.database
4447
by lazy { FirebaseDatabase(FIRDatabase.database()) }
@@ -66,6 +69,10 @@ actual class FirebaseDatabase internal constructor(val ios: FIRDatabase) {
6669
ios.persistenceEnabled = enabled
6770
}
6871

72+
actual fun setPersistenceCacheSizeBytes(cacheSizeInBytes: Long) {
73+
ios.setPersistenceCacheSizeBytes(cacheSizeInBytes.toULong())
74+
}
75+
6976
actual fun setLoggingEnabled(enabled: Boolean) =
7077
FIRDatabase.setLoggingEnabled(enabled)
7178

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,11 @@ actual fun Firebase.database(app: FirebaseApp, url: String) =
7171
rethrow { FirebaseDatabase(getDatabase(app = app.js, url = url)) }
7272

7373
actual class FirebaseDatabase internal constructor(val js: Database) {
74+
7475
actual fun reference(path: String) = rethrow { DatabaseReference(NativeDatabaseReference(ref(js, path), js)) }
7576
actual fun reference() = rethrow { DatabaseReference(NativeDatabaseReference(ref(js), js)) }
7677
actual fun setPersistenceEnabled(enabled: Boolean) {}
78+
actual fun setPersistenceCacheSizeBytes(cacheSizeInBytes: Long) {}
7779
actual fun setLoggingEnabled(enabled: Boolean) = rethrow { enableLogging(enabled) }
7880
actual fun useEmulator(host: String, port: Int) = rethrow { connectDatabaseEmulator(js, host, port) }
7981

0 commit comments

Comments
 (0)