walking_services.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import 'package:cloud_firestore/cloud_firestore.dart';
  2. import 'package:firebase_auth/firebase_auth.dart';
  3. import '../models/score.dart';
  4. class WalkingServices {
  5. static final db = FirebaseFirestore.instance;
  6. static dynamic addScore(Score score) async {
  7. // final user = {"score": score.points, "distance": score.distance};
  8. final walkingScore = await db
  9. .collection("WalkingScores")
  10. .where("user", isEqualTo: FirebaseAuth.instance.currentUser?.uid)
  11. .get();
  12. if(walkingScore.docs.isEmpty){
  13. db
  14. .collection("WalkingScores")
  15. .add({"score":score.points,"user":FirebaseAuth.instance.currentUser?.uid });
  16. }
  17. else{
  18. db
  19. .collection("WalkingScores")
  20. .doc(walkingScore.docs.first.id)
  21. .update({"score": walkingScore.docs.first.get("score") + score.points});
  22. }
  23. final user = await db
  24. .collection("profileInfo")
  25. .doc(FirebaseAuth.instance.currentUser?.uid).get();
  26. db
  27. .collection("profileInfo")
  28. .doc(FirebaseAuth.instance.currentUser?.uid)
  29. .update({"total_points":user.get("total_points") + score.points});
  30. }
  31. }