52 lines
2.1 KiB
Kotlin
52 lines
2.1 KiB
Kotlin
package com.example.scanwich
|
|
|
|
import android.util.Log
|
|
import com.google.firebase.auth.FirebaseAuth
|
|
import com.google.firebase.firestore.FirebaseFirestore
|
|
import com.google.firebase.firestore.SetOptions
|
|
|
|
object FirebaseUtils {
|
|
private fun getDb(): FirebaseFirestore {
|
|
return try {
|
|
// Tente d'utiliser la base de données nommée "scan-wich"
|
|
FirebaseFirestore.getInstance("scan-wich")
|
|
} catch (e: Exception) {
|
|
// Repli sur la base par défaut si "scan-wich" n'est pas configurée comme base secondaire
|
|
FirebaseFirestore.getInstance()
|
|
}
|
|
}
|
|
|
|
fun syncMealToFirestore(meal: Meal) {
|
|
val user = FirebaseAuth.getInstance().currentUser
|
|
if (user != null) {
|
|
getDb().collection("users").document(user.uid).collection("meals")
|
|
.document(meal.date.toString())
|
|
.set(meal, SetOptions.merge())
|
|
.addOnSuccessListener { Log.d("Firestore", "Meal synced") }
|
|
.addOnFailureListener { e -> Log.e("Firestore", "Error meal: ${e.message}") }
|
|
}
|
|
}
|
|
|
|
fun syncGlycemiaToFirestore(glycemia: Glycemia) {
|
|
val user = FirebaseAuth.getInstance().currentUser
|
|
if (user != null) {
|
|
getDb().collection("users").document(user.uid).collection("glycemia")
|
|
.document(glycemia.date.toString())
|
|
.set(glycemia, SetOptions.merge())
|
|
.addOnSuccessListener { Log.d("Firestore", "Glycemia synced") }
|
|
.addOnFailureListener { e -> Log.e("Firestore", "Error glycemia: ${e.message}") }
|
|
}
|
|
}
|
|
|
|
fun syncSportToFirestore(sport: SportActivity) {
|
|
val user = FirebaseAuth.getInstance().currentUser
|
|
if (user != null) {
|
|
getDb().collection("users").document(user.uid).collection("sports")
|
|
.document(sport.id.toString())
|
|
.set(sport, SetOptions.merge())
|
|
.addOnSuccessListener { Log.d("Firestore", "Sport synced") }
|
|
.addOnFailureListener { e -> Log.e("Firestore", "Error sport: ${e.message}") }
|
|
}
|
|
}
|
|
}
|