我已经将电子邮件和密码作为Firebase数据库中的字段,但我希望每个用户都拥有'积分'同样。有没有办法将此列添加到所有用户,以便'点'可以在'用户'并被认可?感谢。
这是我的saveUser函数
import Foundation
import FirebaseDatabase
class DBProvider {
private static let _instance = DBProvider();
static var Instance: DBProvider {
return _instance;
}
var dbRef: FIRDatabaseReference {
return FIRDatabase.database().reference();
}
var driversRef: FIRDatabaseReference {
return dbRef.child(Constants.DRIVERS)
}
func saveUser(withID: String,email: String, password: String) {
let data: Dictionary<String, Any> = [Constants.EMAIL: email, Constants.PASSWORD: password];
driversRef.child(withID).child(Constants.DATA).setValue(data);
}
} //class
这就是它的所在。
func signUp(withEmail: String, password: String, loginHandler: LoginHandler?) {
FIRAuth.auth()?.createUser(withEmail: withEmail, password: password, completion: { (user, error) in
if error != nil {
self.handleErrors(err: error as! NSError, loginHandler: loginHandler);
} else {
if user?.uid != nil {
// store the user to database
DBProvider.Instance.saveUser(withID: user!.uid, email: withEmail, password: password)
//log in the user
self.login(withEmail: withEmail, password: password, loginHandler: loginHandler)
}
}
})
} //sign up func
答案 0 :(得分:1)
您可以随时向用户添加points
属性。
保存方式与您现在保存email
和password
的方式相同。作为旁注:我不会将密码保存为明文,至少哈希并将哈希值发送给Firebase。
您的新用户也会有积分,但您的旧用户不会,所以需要手动更新这些积分:
- 从Firebase中检索它们
- 向他们添加points
。