Our iOS UberEats clone project contains 4 different user flows:
- regular consumer app
- driver app
- restaurant app
- god mode (regular consumer app + admin dashboard)
The correct flow is automatically triggered based on the role of the currently logged in user. There are 3 special different roles, for each workflow:
- admin
- driver
- vendor
If the role is not specified, or has a different value than these 3 special roles, then the default consumer app is triggered automatically.
Once you create a new user in the app, a new entity gets created in the “users” table in Firebase Firestore. Find that entity, and add a “role” field manually, directly in Firestore:
- for admin, simply add a field “role” = “admin” (string)
- for a driver
- add a field “role” = “driver” (string)
- add a field “carName” which is the name/model of the car (e.g. “Tesla Model 3”)
- add a field name “carNumber” which is the license plate of the car
- add a field name “carPictureURL” which is an URL to a photo of the car
- for restaurant manager
- add a field “role” = “vendor”
- add a field vendorID, which is the ID of the restaurant that this user manages (the vendorID value must match the ID of a vendor from the “vendors” db table)