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));
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 s.ref.getDownloadURL(),
"providerWorkArea": routeForNewProvider.map((i){
return {'lat': i.latitude, 'lng': i.longitude};
}).toList(),
"providerCategory": category
}, SetOptions(merge:true));
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;
}