fetchFromFirestore method
Implementation
Future<DocumentSnapshot<Map<String, dynamic>>?> fetchFromFirestore() async {
try {
var resultPrivate = await FirestoreCollections.private_users
.doc(FirebaseAuth.instance.currentUser!.uid)
.get();
var resultPublic = await FirestoreCollections.public_users
.doc(FirebaseAuth.instance.currentUser!.uid)
.get();
userFetched = null;
var user = UserData.empty();
if (resultPrivate.exists) {
user = UserData.empty();
user.uidProviderFirst =
resultPrivate.data()![FirestoreFields.uidProviderFirst] ?? "";
user.phoneNumber = resultPrivate.data()![FirestoreFields.phone];
user.firstLogin =
resultPrivate.data()![FirestoreFields.firstLogin] ?? true;
}
if (resultPublic.exists) {
user.username = resultPublic.data()![FirestoreFields.username];
userFetched = user;
return resultPublic;
} else {
// no network or no data?
userFetched = UserData.empty();
}
} catch (exception) {
logger.e("Failed to fetch user data", exception);
}
return null;
}