registerProvider function
Future<String?>
registerProvider(
- String email,
- String pass,
- String _login,
- String providerName,
- String phone,
- String desc,
- String address,
- List<String> category,
- String pathToImage,
- List<LatLng> routeForNewProvider,
)
Implementation
Future<String?> registerProvider(String email, String pass, String _login,
String providerName, String phone, String desc, String address,
List<String> category, String pathToImage, List<LatLng> routeForNewProvider) async {
try {
final User? user = (await FirebaseAuth.instance.createUserWithEmailAndPassword(
email: email, password: pass,)).user;
if (user == null)
return "User don't create";
// load image
var f = Uuid().v4();
var name = "provider/$f.jpg";
// var firebaseStorageRef = FirebaseStorage.instance.ref().child(name);
// TaskSnapshot s = await firebaseStorageRef.putFile(File(pathToImage));
var _fileData = await File(pathToImage).readAsBytes();
await dbSetDocumentInTable("listusers", user.uid, {
"visible": true,
"providerApp": true,
"providerRequest" : true,
"phoneVerified": false,
"email": user.email,
"phone": phone,
"name": _login,
"date_create" : DateTime.now().toUtc(),
"providerName": providerName,
"providerAddress": address,
"providerDesc": desc,
"providerLogoLocalFile": name,
"providerLogoServerPath": await dbSaveFile(name, _fileData),
"providerWorkArea": routeForNewProvider.map((i){
return {'lat': i.latitude, 'lng': i.longitude};
}).toList(),
"providerCategory": category
});
// await FirebaseFirestore.instance.collection("listusers").doc(user.uid).set({
// "visible": true,
// "providerApp": true,
// "providerRequest" : true,
// "phoneVerified": false,
// "email": user.email,
// "phone": phone,
// "name": _login,
// "date_create" : FieldValue.serverTimestamp(),
// "providerName": providerName,
// "providerAddress": address,
// "providerDesc": desc,
// "providerLogoLocalFile": name,
// "providerLogoServerPath": await dbSaveFile(name, _fileData),
// "providerWorkArea": routeForNewProvider.map((i){
// return {'lat': i.latitude, 'lng': i.longitude};
// }).toList(),
// "providerCategory": category
// }, SetOptions(merge:true));
await dbIncrementCounter("settings", "main", "provider_request_count", 1);
await dbIncrementCounter("settings", "main", "provider_new_request_count", 1);
// await FirebaseFirestore.instance.collection("settings").doc("main")
// .set({"provider_request_count": FieldValue.increment(1)}, SetOptions(merge:true));
// await FirebaseFirestore.instance.collection("settings").doc("main")
// .set({"provider_new_request_count": FieldValue.increment(1)}, SetOptions(merge:true));
}catch(ex){
return "model registerProvider " + ex.toString();
}
return null;
}