chore: remove Firebase dependencies and legacy code (Fase 4)
- Delete all firebase_*_repository.dart files (replaced by api_* equivalents) - Remove cloud_firestore, firebase_auth, firebase_storage, firebase_core from all package pubspecs - Remove cloud_firestore from main pubspec.yaml - Delete firebase_options.dart (no longer referenced) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
733384091c
commit
af91e0ba04
-213
@@ -1,213 +0,0 @@
|
||||
import 'dart:async';
|
||||
import 'dart:developer';
|
||||
import 'dart:io';
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:professional_repository/professional_repository.dart';
|
||||
import 'package:firebase_storage/firebase_storage.dart';
|
||||
|
||||
class FirebaseProfessionalRepository {
|
||||
final professionalCollection =
|
||||
FirebaseFirestore.instance.collection('professional_info');
|
||||
|
||||
ProfessionalEntity? _proInfo;
|
||||
final StreamController<ProfessionalEntity?> _proInfoBroadcast =
|
||||
StreamController<ProfessionalEntity?>.broadcast();
|
||||
|
||||
bool isProModeActive = false;
|
||||
|
||||
final StreamController<bool> _isProModeActiveBroadcast =
|
||||
StreamController.broadcast();
|
||||
|
||||
FirebaseProfessionalRepository() {
|
||||
_isProModeActiveBroadcast.add(isProModeActive);
|
||||
|
||||
FirebaseAuth.instance.userChanges().listen((user) async {
|
||||
if (user != null) {
|
||||
await updateFromFirebase(
|
||||
userId: user.uid,
|
||||
);
|
||||
} else {
|
||||
_proInfo = null;
|
||||
_proInfoBroadcast.add(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ProfessionalEntity? lastProInfo() {
|
||||
return _proInfo;
|
||||
}
|
||||
|
||||
Stream<ProfessionalEntity?> streamProInfo() {
|
||||
return _proInfoBroadcast.stream;
|
||||
}
|
||||
|
||||
Future<void> updateFromFirebase({
|
||||
required String userId,
|
||||
}) async {
|
||||
try {
|
||||
final proInfo = await getProInfo(userId);
|
||||
_proInfo = proInfo;
|
||||
_proInfoBroadcast.add(proInfo);
|
||||
} catch (e) {
|
||||
_proInfo = null;
|
||||
_proInfoBroadcast.add(null);
|
||||
}
|
||||
}
|
||||
|
||||
Future<ProfessionalEntity?> getProInfo(String myUserId) async {
|
||||
try {
|
||||
return professionalCollection.doc(myUserId).get().then((value) {
|
||||
final valueData = value.data();
|
||||
if (valueData == null || valueData.isEmpty || !value.exists) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return ProfessionalEntity.fromDocument(valueData);
|
||||
});
|
||||
} catch (e) {
|
||||
log(e.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
Stream<bool> sreamIsProModeActive() {
|
||||
return _isProModeActiveBroadcast.stream;
|
||||
}
|
||||
|
||||
switchProMode() async {
|
||||
isProModeActive = !isProModeActive;
|
||||
_isProModeActiveBroadcast.add(isProModeActive);
|
||||
}
|
||||
|
||||
Future<void> updateProfessionalInfo(
|
||||
String address,
|
||||
String aditionalAddress,
|
||||
bool ratePreferences,
|
||||
String rate,
|
||||
LocationPreferences locationPreferences,
|
||||
double latitude,
|
||||
double longitude,
|
||||
Schedules schedules,
|
||||
PaymentMethodEntity paymentMethods,
|
||||
) async {
|
||||
if (_proInfo == null) {
|
||||
log('_proInfo is null');
|
||||
return;
|
||||
}
|
||||
await professionalCollection.doc(_proInfo!.id).update({
|
||||
'address': address,
|
||||
'aditional_address': aditionalAddress,
|
||||
'rate_preferences': ratePreferences,
|
||||
'rate': rate,
|
||||
'location_preferences': enumToInt(locationPreferences),
|
||||
'latitude': latitude,
|
||||
'longitude': longitude,
|
||||
'schedules': schedules.toJson(),
|
||||
'payment_methods': paymentMethods.toDocument(),
|
||||
});
|
||||
|
||||
await updateFromFirebase(userId: _proInfo!.id);
|
||||
}
|
||||
|
||||
Future<void> saveProfessionalInfo(ProfessionalEntity entity) async {
|
||||
await professionalCollection.doc(entity.id).set(entity.toDocument());
|
||||
}
|
||||
|
||||
Future<void> uploadBannerPicture(String file) async {
|
||||
try {
|
||||
File imageFile = File(file);
|
||||
Reference firebaseStoreRef = FirebaseStorage.instance
|
||||
.ref()
|
||||
.child('${_proInfo!.id}/BN/${_proInfo!.id}_banner');
|
||||
await firebaseStoreRef.putFile(imageFile);
|
||||
String url = await firebaseStoreRef.getDownloadURL();
|
||||
|
||||
await professionalCollection
|
||||
.doc(_proInfo!.id)
|
||||
.update({'banner_picture': url});
|
||||
} catch (e) {
|
||||
log(e.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
Future<String> uploadPdfCedula(String file, String userId) async {
|
||||
try {
|
||||
File pdfFile = File(file);
|
||||
Reference firebaseStoreRef = FirebaseStorage.instance
|
||||
.ref()
|
||||
.child('$userId/PDF/${userId}_cedula.pdf');
|
||||
await firebaseStoreRef.putFile(pdfFile);
|
||||
String url = await firebaseStoreRef.getDownloadURL();
|
||||
return url;
|
||||
} catch (e) {
|
||||
log(e.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
Future<String> uploadPdfCertificado(String file, String userId) async {
|
||||
try {
|
||||
File pdfFile = File(file);
|
||||
Reference firebaseStoreRef = FirebaseStorage.instance
|
||||
.ref()
|
||||
.child('$userId/PDF/${userId}_certificado.pdf');
|
||||
await firebaseStoreRef.putFile(pdfFile);
|
||||
String url = await firebaseStoreRef.getDownloadURL();
|
||||
return url;
|
||||
} catch (e) {
|
||||
log(e.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<String>> uploadPdfsEspecializaciones(
|
||||
List<String> files, String userId) async {
|
||||
try {
|
||||
List<String> urls = [];
|
||||
for (String file in files) {
|
||||
File pdfFile = File(file);
|
||||
Reference firebaseStoreRef = FirebaseStorage.instance.ref().child(
|
||||
'$userId/PDF/${userId}_${DateTime.now().millisecondsSinceEpoch}_especializacion.pdf');
|
||||
await firebaseStoreRef.putFile(pdfFile);
|
||||
String url = await firebaseStoreRef.getDownloadURL();
|
||||
urls.add(url);
|
||||
}
|
||||
return urls;
|
||||
} catch (e) {
|
||||
log(e.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<ProfessionalEntity>> getProfessionalInfo() async {
|
||||
try {
|
||||
QuerySnapshot<Map<String, dynamic>> querySnapshot =
|
||||
await professionalCollection.get();
|
||||
return querySnapshot.docs
|
||||
.map((e) => ProfessionalEntity.fromDocument(e.data()))
|
||||
.toList();
|
||||
} catch (e) {
|
||||
log(e.toString());
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<ProfessionalEntity>> getProfessionalsFromIds(
|
||||
Iterable<String> ids) async {
|
||||
try {
|
||||
final querySnapshot = await professionalCollection
|
||||
.where(FieldPath.documentId, whereIn: ids)
|
||||
.get();
|
||||
|
||||
return querySnapshot.docs
|
||||
.map((e) => ProfessionalEntity.fromDocument(e.data()))
|
||||
.toList();
|
||||
} catch (e) {
|
||||
log('getProfessionsFromIds ${e.toString()}');
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,11 +15,6 @@ dependencies:
|
||||
shared_preferences: ^2.0.10
|
||||
intl: ^0.19.0
|
||||
|
||||
# Firebase kept for FirebaseProfessionalRepository (legacy fallback)
|
||||
cloud_firestore: ^4.15.4
|
||||
firebase_storage: ^11.6.5
|
||||
firebase_core: ^2.25.4
|
||||
firebase_auth: ^4.17.8
|
||||
|
||||
dev_dependencies:
|
||||
flutter_lints: ^2.0.0
|
||||
|
||||
Reference in New Issue
Block a user