loginProvider function
Implementation
Future<String?> loginProvider(String email, String pass, bool _remember,
String stringUserNotFound, // User not found
String stringUserMustBeProvider, // User must be Provider
String stringUserDisabled // "User is disabled. Connect to Administrator for more information.",
) async {
try {
User? user = (await FirebaseAuth.instance.signInWithEmailAndPassword(
email: email, password: pass)).user;
if (user == null)
return stringUserNotFound; /// User not found
var querySnapshot = await FirebaseFirestore.instance.collection("listusers").doc(user.uid).get();
if (!querySnapshot.exists) {
logout();
return stringUserNotFound; /// User not found
}
var querySnapshot2 = await FirebaseFirestore.instance.collection("provider")
.where('login', isEqualTo: email).get();
if (querySnapshot2.docs.isEmpty){
logout();
return stringUserMustBeProvider; /// User must be Provider
}
var _visible = true;
for (var result in querySnapshot2.docs) {
dprint("model login " + result.data().toString());
if (!result.data()["visible"])
_visible = false;
}
if (!_visible){
dprint("User not visible. Don't enter...");
logout();
return stringUserDisabled; /// "User is disabled. Connect to Administrator for more information."
}
if (_remember)
localSettings.saveLogin(email, pass, "email");
else
localSettings.saveLogin("", "", "");
}catch(ex){
return "model login " + ex.toString();
}
dprint("=================login===============");
return null;
}