Skip to content

Commit bdea157

Browse files
authored
Merge pull request #194 from tiagonuneslx/firestore-document
Add CollectionReference.document to firestore for all targets
2 parents d37696f + 4e616f0 commit bdea157

File tree

6 files changed

+27
-1
lines changed
  • firebase-common/src/jsMain/kotlin/dev/gitlive/firebase
  • firebase-firestore/src

6 files changed

+27
-1
lines changed

firebase-common/src/jsMain/kotlin/dev/gitlive/firebase/externals.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ external object firebase {
381381

382382
open class CollectionReference : Query {
383383
val path: String
384-
fun doc(path: String): DocumentReference
384+
fun doc(path: String = definedExternally): DocumentReference
385385
fun add(data: Any): Promise<DocumentReference>
386386
}
387387

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,9 @@ actual class CollectionReference(override val android: com.google.firebase.fires
364364
actual val path: String
365365
get() = android.path
366366

367+
actual val document: DocumentReference
368+
get() = DocumentReference(android.document())
369+
367370
actual fun document(documentPath: String) = DocumentReference(android.document(documentPath))
368371

369372
actual suspend inline fun <reified T> add(data: T, encodeDefaults: Boolean) =

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ expect class DocumentReference {
128128

129129
expect class CollectionReference : Query {
130130
val path: String
131+
val document: DocumentReference
131132

132133
fun document(documentPath: String): DocumentReference
133134
suspend inline fun <reified T> add(data: T, encodeDefaults: Boolean = true): DocumentReference

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,24 @@ class FirebaseFirestoreTest {
124124

125125
}
126126

127+
128+
@Test
129+
fun testDocumentAutoId() = runTest {
130+
val doc = Firebase.firestore
131+
.collection("testDocumentAutoId")
132+
.document
133+
134+
doc.set(FirestoreTest.serializer(), FirestoreTest("AutoId"))
135+
136+
val resultDoc = Firebase.firestore
137+
.collection("testDocumentAutoId")
138+
.document(doc.id)
139+
.get()
140+
141+
assertEquals(true, resultDoc.exists)
142+
assertEquals("AutoId", resultDoc.get("prop1"))
143+
}
144+
127145
private suspend fun setupFirestoreData() {
128146
Firebase.firestore.collection("FirebaseFirestoreTest")
129147
.document("one")

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,8 @@ actual class CollectionReference(override val ios: FIRCollectionReference) : Que
279279
actual val path: String
280280
get() = ios.path
281281

282+
actual val document get() = DocumentReference(ios.documentWithAutoID())
283+
282284
actual fun document(documentPath: String) = DocumentReference(ios.documentWithPath(documentPath))
283285

284286
actual suspend inline fun <reified T> add(data: T, encodeDefaults: Boolean) =

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,8 @@ actual class CollectionReference(override val js: firebase.firestore.CollectionR
345345
actual val path: String
346346
get() = rethrow { js.path }
347347

348+
actual val document get() = rethrow { DocumentReference(js.doc()) }
349+
348350
actual fun document(documentPath: String) = rethrow { DocumentReference(js.doc(documentPath)) }
349351

350352
actual suspend inline fun <reified T> add(data: T, encodeDefaults: Boolean) =

0 commit comments

Comments
 (0)