我正在构建一个非常简单的应用程序,它将用户的报告发送给管理员。到目前为止我已经完成了整个前端。我的菜单可以正常工作,报告顺序也很流畅。现在是我负责后端的时候了。我是一名新的 Swift 开发人员,完全自学(就像你应该的那样:)),但我对一些事情感到困惑。我只需要一些指导,我通过阅读后面的堆栈溢出来寻求建议,但从未提出过问题。所以!我向敬虔的堆栈社区的你们提出的问题是!:
我为用户设置了两个角色..
- 普通用户
- An admin
我希望能够根据他们在 firebase 中的角色,当他们登录时将他们重定向到各自的视图控制器。现在!我问我的一个朋友,他告诉我这些都可以在同一个应用程序中完成,我不需要为管理员制作不同的应用程序。我猜这是真的,因为我相信他的判断。我正在考虑做 if 检查,即
//If role is = to admin
self.performSegue(admin VC)
//else
self.performSegue(homeScreen)
我遇到问题 1. 分配角色和 2. 从 firebase 访问它!
非常感谢任何见解/提示!
谢谢堆栈溢出大神
这将是一个两步过程
第一步是验证用户身份并检索其用户 uid
Auth.auth().signIn(withEmail: "[email protected]", password: "password",
completion: { (auth, error) in
if error != nil {
let err = error?.localizedDescription
print(err!)
} else {
print("succesfully authd")
let uid = auth!.uid
assignUserRole(uid)
}
})
假设您有一个包含附加用户数据的标准用户节点
users
uid_0
fav_food: "pizza"
user_role: "admin"
uid_1
fav_food: "tacos"
user_role: "normal_user"
步骤2:然后将调用assignUserRole函数来获取用户信息并设置UI
function assignUserRole(theUid: String) {
let thisUserRef = appRef.child("users").child(theUid)
thisUserRef.observeSingleEvent(of: .value, with: { snapshot in
let userDict = snapshot.value as! [String: Any]
let favFood = userDict["fav_food"] as! String
let userRole = userDict["user_role"] as! String
print(" \(favFood) \(userRole")
if userRole == "admin" {
//display admin viewController
} else {
//display normal user viewController
}
})
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)