Atualização geral de optimazação e desing
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'dart:async';
|
||||
|
||||
import '../main.dart' show supabase;
|
||||
import 'quiz_prefs.dart';
|
||||
|
||||
class QuizResultScreen extends StatefulWidget {
|
||||
@@ -40,7 +39,7 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
|
||||
maxScore: widget.maxScore,
|
||||
);
|
||||
} else {
|
||||
final uid = FirebaseAuth.instance.currentUser?.uid;
|
||||
final uid = supabase.auth.currentUser?.id;
|
||||
if (uid != null && uid.trim().isNotEmpty) {
|
||||
await QuizPrefs.saveLastResultForUser(
|
||||
userId: uid,
|
||||
@@ -55,25 +54,23 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
final uid = FirebaseAuth.instance.currentUser?.uid;
|
||||
final uid = supabase.auth.currentUser?.id;
|
||||
final userId = (uid ?? '').trim();
|
||||
if (userId.isNotEmpty &&
|
||||
scope.isNotEmpty &&
|
||||
scope.startsWith('${userId}_')) {
|
||||
final childId = scope.substring(userId.length + 1).trim();
|
||||
if (childId.isNotEmpty) {
|
||||
// Fire-and-forget: avoid blocking UI on Firestore (may hang offline).
|
||||
// Fire-and-forget: avoid blocking UI on erros de rede.
|
||||
unawaited(
|
||||
FirebaseFirestore.instance
|
||||
.collection('users')
|
||||
.doc(userId)
|
||||
.collection('children')
|
||||
.doc(childId)
|
||||
.set({
|
||||
'lastScore': widget.finalScore,
|
||||
'lastMaxScore': widget.maxScore,
|
||||
'lastQuizAt': FieldValue.serverTimestamp(),
|
||||
}, SetOptions(merge: true))
|
||||
supabase
|
||||
.from('children')
|
||||
.update({
|
||||
'last_score': widget.finalScore,
|
||||
'last_max_score': widget.maxScore,
|
||||
'last_quiz_at': DateTime.now().toIso8601String(),
|
||||
})
|
||||
.eq('id', childId)
|
||||
.catchError((_) {}),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user