Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8511f41

Browse files
committed
Firestore + KTX
Change-Id: I8bed04d574d3daa034083e69af478d547eeefbe0
1 parent 3e054b1 commit 8511f41

File tree

6 files changed

+20
-16
lines changed

6 files changed

+20
-16
lines changed

firestore/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ dependencies {
4040
implementation 'androidx.multidex:multidex:2.0.1'
4141

4242
// Firestore
43-
implementation "com.google.firebase:firebase-firestore:21.4.0"
43+
implementation "com.google.firebase:firebase-firestore-ktx:21.4.0"
4444

4545
// Firebase / Play Services
4646
implementation "com.google.firebase:firebase-auth:19.2.0"

firestore/app/src/main/java/com/google/example/firestore/kotlin/DocSnippets.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ import com.google.firebase.firestore.Query
2020
import com.google.firebase.firestore.ServerTimestamp
2121
import com.google.firebase.firestore.SetOptions
2222
import com.google.firebase.firestore.Source
23+
import com.google.firebase.firestore.ktx.firestore
24+
import com.google.firebase.firestore.ktx.toObject
25+
import com.google.firebase.ktx.Firebase
2326
import java.util.ArrayList
2427
import java.util.Date
2528
import java.util.HashMap
@@ -102,7 +105,7 @@ abstract class DocSnippets(val db: FirebaseFirestore) {
102105

103106
private fun setup() {
104107
// [START get_firestore_instance]
105-
val db = FirebaseFirestore.getInstance()
108+
val db = Firebase.firestore
106109
// [END get_firestore_instance]
107110

108111
// [START set_firestore_settings]
@@ -494,7 +497,7 @@ abstract class DocSnippets(val db: FirebaseFirestore) {
494497
// [START custom_objects]
495498
val docRef = db.collection("cities").document("BJ")
496499
docRef.get().addOnSuccessListener { documentSnapshot ->
497-
val city = documentSnapshot.toObject(City::class.java)
500+
val city = documentSnapshot.toObject<City>()
498501
}
499502
// [END custom_objects]
500503
}
Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
package com.google.example.firestore.kotlin
22

3-
import com.google.firebase.firestore.FirebaseFirestore
4-
import com.google.firebase.firestore.FirebaseFirestoreSettings
3+
import com.google.firebase.firestore.ktx.firestore
4+
import com.google.firebase.firestore.ktx.firestoreSettings
5+
import com.google.firebase.ktx.Firebase
56

67
class EmulatorSuite {
78

89
fun emulatorSettings() {
910
// [START fs_emulator_connect]
1011
// 10.0.2.2 is the special IP address to connect to the 'localhost' of
1112
// the host computer from an Android emulator.
12-
val settings = FirebaseFirestoreSettings.Builder()
13-
.setHost("10.0.2.2:8080")
14-
.setSslEnabled(false)
15-
.setPersistenceEnabled(false)
16-
.build()
17-
18-
val firestore = FirebaseFirestore.getInstance()
19-
firestore.firestoreSettings = settings
13+
val firestore = Firebase.firestore
14+
firestore.firestoreSettings = firestoreSettings {
15+
host = "http://10.0.0.2:8080"
16+
isSslEnabled = false
17+
isPersistenceEnabled = false
18+
}
2019
// [END fs_emulator_connect]
2120
}
2221
}

firestore/app/src/main/java/com/google/example/firestore/kotlin/SolutionAggregation.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.google.android.gms.tasks.Task
44
import com.google.firebase.firestore.DocumentReference
55
import com.google.firebase.firestore.FirebaseFirestore
66
import com.google.firebase.firestore.SetOptions
7+
import com.google.firebase.firestore.ktx.toObject
78

89
/**
910
* https://firebase.google.com/docs/firestore/solutions/aggregation
@@ -41,7 +42,7 @@ abstract class SolutionAggregation(private val db: FirebaseFirestore) {
4142

4243
// In a transaction, add the new rating and update the aggregate totals
4344
return db.runTransaction { transaction ->
44-
val restaurant = transaction.get(restaurantRef).toObject(Restaurant::class.java)!!
45+
val restaurant = transaction.get(restaurantRef).toObject<Restaurant>()!!
4546

4647
// Compute new number of ratings
4748
val newNumRatings = restaurant.numRatings + 1

firestore/app/src/main/java/com/google/example/firestore/kotlin/SolutionCounters.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.google.android.gms.tasks.Tasks
55
import com.google.firebase.firestore.DocumentReference
66
import com.google.firebase.firestore.FieldValue
77
import com.google.firebase.firestore.FirebaseFirestore
8+
import com.google.firebase.firestore.ktx.toObject
89

910
/**
1011
* https://firebase.google.com/docs/firestore/solutions/counters
@@ -60,7 +61,7 @@ class SolutionCounters(val db: FirebaseFirestore) {
6061
.continueWith { task ->
6162
var count = 0
6263
for (snap in task.result!!) {
63-
val shard = snap.toObject(Shard::class.java)
64+
val shard = snap.toObject<Shard>()
6465
count += shard.count
6566
}
6667
count

firestore/app/src/main/java/com/google/example/firestore/kotlin/SolutionDeletes.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ class SolutionDeletes {
2222
}
2323
}
2424
// [END call_delete_function]
25-
}
25+
}

0 commit comments

Comments
 (0)