Skip to content

Commit 28d712e

Browse files
committed
Added database
1 parent e9d8666 commit 28d712e

File tree

4 files changed

+182
-0
lines changed

4 files changed

+182
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ firebase-app/src/iosMain/c_interop/modules/
99
firebase-functions/src/iosMain/c_interop/modules/
1010
firebase-auth/src/iosMain/c_interop/modules/
1111
firebase-firestore/src/iosMain/c_interop/modules/
12+
firebase-database/src/iosMain/c_interop/modules/

firebase-database/build.gradle.kts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import org.apache.tools.ant.taskdefs.condition.Os
33
plugins {
44
id("com.android.library")
55
kotlin("multiplatform")
6+
kotlin("native.cocoapods")
67
`maven-publish`
78
}
89

@@ -39,6 +40,16 @@ kotlin {
3940
}
4041
}
4142
}
43+
val iosArm64 = iosArm64()
44+
val iosX64 = iosX64()
45+
46+
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
47+
kotlinOptions.freeCompilerArgs += listOf(
48+
"-Xuse-experimental=kotlin.Experimental",
49+
"-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi",
50+
"-Xuse-experimental=kotlinx.serialization.ImplicitReflectionSerializer"
51+
)
52+
}
4253

4354
sourceSets {
4455
val commonMain by getting {
@@ -65,6 +76,28 @@ kotlin {
6576
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:0.14.0")
6677
}
6778
}
79+
val iosMain by creating {
80+
dependencies {
81+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:0.14.0")
82+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-native:1.3.3")
83+
}
84+
}
85+
86+
configure(listOf(iosArm64, iosX64)) {
87+
compilations.getByName("main") {
88+
source(sourceSets.get("iosMain"))
89+
val firebaseDatabase by cinterops.creating {
90+
packageName("cocoapods.FirebaseDatabase")
91+
defFile(file("$projectDir/src/iosMain/c_interop/FirebaseDatabase.def"))
92+
compilerOpts("-F$projectDir/src/iosMain/c_interop/modules/FirebaseDatabase-6.17.0")
93+
}
94+
}
95+
}
96+
97+
cocoapods {
98+
summary = ""
99+
homepage = ""
100+
}
68101
}
69102
}
70103

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
language = Objective-C
2+
modules = FirebaseDatabase
3+
compilerOpts = -framework FirebaseDatabase
4+
linkerOpts = -framework FirebaseDatabase
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
package dev.teamhub.firebase.database
2+
3+
import dev.teamhub.firebase.Firebase
4+
import dev.teamhub.firebase.FirebaseApp
5+
import kotlinx.serialization.DeserializationStrategy
6+
import kotlinx.serialization.SerializationStrategy
7+
import kotlinx.serialization.ImplicitReflectionSerializer
8+
9+
/** Returns the [FirebaseDatabase] instance of the default [FirebaseApp]. */
10+
actual val Firebase.database: FirebaseDatabase
11+
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
12+
13+
/** Returns the [FirebaseDatabase] instance for the specified [url]. */
14+
actual fun Firebase.database(url: String): FirebaseDatabase {
15+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
16+
}
17+
18+
/** Returns the [FirebaseDatabase] instance of the given [FirebaseApp]. */
19+
actual fun Firebase.database(app: FirebaseApp): FirebaseDatabase {
20+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
21+
}
22+
23+
/** Returns the [FirebaseDatabase] instance of the given [FirebaseApp] and [url]. */
24+
actual fun Firebase.database(
25+
app: FirebaseApp,
26+
url: String
27+
): FirebaseDatabase {
28+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
29+
}
30+
31+
actual class FirebaseDatabase {
32+
actual fun reference(path: String): DatabaseReference {
33+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
34+
}
35+
36+
actual fun setPersistenceEnabled(enabled: Boolean) {
37+
}
38+
39+
actual fun setLoggingEnabled(enabled: Boolean) {
40+
}
41+
}
42+
43+
actual open class Query {
44+
actual val valueEvents: kotlinx.coroutines.flow.Flow<DataSnapshot>
45+
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
46+
47+
actual fun childEvents(vararg types: ChildEvent.Type): kotlinx.coroutines.flow.Flow<ChildEvent> {
48+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
49+
}
50+
51+
actual fun orderByKey(): Query {
52+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
53+
}
54+
55+
actual fun orderByChild(path: String): Query {
56+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
57+
}
58+
59+
actual fun startAt(value: String, key: String?): Query {
60+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
61+
}
62+
63+
actual fun startAt(value: Double, key: String?): Query {
64+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
65+
}
66+
67+
actual fun startAt(value: Boolean, key: String?): Query {
68+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
69+
}
70+
}
71+
72+
actual class DatabaseReference : Query() {
73+
actual val key: String?
74+
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
75+
76+
actual fun push(): DatabaseReference {
77+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
78+
}
79+
80+
actual fun child(path: String): DatabaseReference {
81+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
82+
}
83+
84+
actual fun onDisconnect(): OnDisconnect {
85+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
86+
}
87+
88+
@ImplicitReflectionSerializer
89+
actual suspend fun setValue(value: Any?) {
90+
}
91+
92+
actual suspend inline fun <reified T> setValue(strategy: SerializationStrategy<T>, value: T) {
93+
}
94+
95+
@ImplicitReflectionSerializer
96+
actual suspend fun updateChildren(update: Map<String, Any?>) {
97+
}
98+
99+
actual suspend fun removeValue() {
100+
}
101+
}
102+
103+
actual class DataSnapshot {
104+
actual val exists: Boolean
105+
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
106+
actual val key: String?
107+
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
108+
109+
@ImplicitReflectionSerializer
110+
actual inline fun <reified T> value(): T {
111+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
112+
}
113+
114+
actual inline fun <reified T> value(strategy: DeserializationStrategy<T>): T {
115+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
116+
}
117+
118+
actual fun child(path: String): DataSnapshot {
119+
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
120+
}
121+
122+
actual val children: Iterable<DataSnapshot>
123+
get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
124+
}
125+
126+
actual class DatabaseException : RuntimeException()
127+
actual class OnDisconnect {
128+
actual suspend fun removeValue() {
129+
}
130+
131+
actual suspend fun cancel() {
132+
}
133+
134+
@ImplicitReflectionSerializer
135+
actual suspend inline fun <reified T : Any> setValue(value: T) {
136+
}
137+
138+
actual suspend inline fun <reified T> setValue(strategy: SerializationStrategy<T>, value: T) {
139+
}
140+
141+
@ImplicitReflectionSerializer
142+
actual suspend fun updateChildren(update: Map<String, Any?>) {
143+
}
144+
}

0 commit comments

Comments
 (0)