This commit is contained in:
Juan Felipe Duarte
2023-04-03 14:28:58 -05:00
parent 210b479cde
commit 9656a85090
6 changed files with 266 additions and 82 deletions
+38 -2
View File
@@ -1,5 +1,8 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:diacritic/diacritic.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart';
class CityScreen extends StatefulWidget {
const CityScreen({super.key});
@@ -139,7 +142,6 @@ List<String> cities = [
class City {
final String name;
City({required this.name});
}
@@ -147,7 +149,12 @@ List<City> citiesList = cities.map((city) => City(name: city)).toList();
class _CityScreenState extends State<CityScreen> {
List<City> filteredCities = citiesList;
TextEditingController searchController = TextEditingController();
final User? user = FirebaseAuth.instance.currentUser;
late final FirebaseAuth _auth;
final uid = AuthenticationRepository.instance.getCurrentUserUid();
@override
void initState() {
@@ -162,12 +169,40 @@ class _CityScreenState extends State<CityScreen> {
});
}
Future<void> updateCity(String cityName) async {
try {
await FirebaseFirestore.instance
.collection('users')
.doc(uid)
.update({'city': cityName});
print('Ciudad actualizada correctamente');
} catch (e) {
try {
await FirebaseFirestore.instance
.collection('users')
.doc(uid)
.set({'city': cityName});
} catch (e) {
print('Error al agregar la ciudad: $e');
}
print('Error al actualizar la ciudad: $e');
}
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
backgroundColor: Colors.white,
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.pushReplacementNamed(context, '/profile');
},
),
iconTheme: IconThemeData(
color: Colors.black,
),
@@ -196,7 +231,8 @@ class _CityScreenState extends State<CityScreen> {
return ListTile(
title: Text(filteredCities[index].name),
onTap: () {
print(filteredCities[index].name);
updateCity(filteredCities[index].name);
Navigator.pushReplacementNamed(context, '/profile');
},
);
},