有没有办法在Swift中为已创建的Firebase数据库添加新列?

时间:2017-04-10 13:44:24

标签: swift firebase firebase-realtime-database

我已经将电子邮件和密码作为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

1 个答案:

答案 0 :(得分:1)

您可以随时向用户添加points属性。

保存方式与您现在保存emailpassword的方式相同。作为旁注:我不会将密码保存为明文,至少哈希并将哈希值发送给Firebase。

您的用户也会有积分,但您的旧用户不会,所以需要手动更新这些积分: - 从Firebase中检索它们 - 向他们添加points