【发布时间】:2016-11-19 14:55:27
【问题描述】:
我有两个问题:
我知道如何使用简单的键值对向 Firebase 添加常规对象,但如何添加用户对象?
在我的 UserAccount 对象中,我不确定 UserAcct 的第二个 init 方法。我应该使用 init(snapshot: FIRDataSnapshot){} 添加到 Firebase 还是应该坚持使用常规的 init 方法?
我的用户模型对象:
import Foundation
import UIKit
import Firebase
import FirebaseDatabase
class UserAccount{
var userID: String
var email: String
var creationDate: String
init(userID: String, email: String, creationDate: String){
self.userID = userID
self.email = email
self.creationDate = creationDate
}//end init
//Is this second init necessary?
init(snapshot: FIRDataSnapshot) {
userID = snapshot.value!["userID"] as! String
email = snapshot.value!["email"] as! String
creationDate = snapshot.value!["creationDate"] as! String
}
}//END class
我的用户注册课程:
import UIKit
import Firebase
import FirebaseAuth
import FirebaseDatabase
class CreateAccountController: UIViewController{
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
var dbRef: FIRDatabaseReference!
//Array to hold users
var userAcct = [UserAccount]()
override func viewDidLoad() {
super.viewDidLoad()
//Firebase Ref
self.dbRef = FIRDatabase.database().reference()
}
//Button to sign the user up
@IBAction func signUpButtonPressed(sender: UIButton) {
FIRAuth.auth()?.createUserWithEmail(emailTextField.text!, password: passwordTextField.text!, completion: {
(user, error) in
if error != nil{
print(error?.localizedDescription)
}else{
let emailAddress = self.emailTextField.text!
let currentUserID: String = (FIRAuth.auth()?.currentUser?.uid)!
let accountCreationDate = FIRServerValue.timestamp()
self.userAcct =[UserAccount(userID: currentUserID, email: emailAddress, creationDate: accountCreationDate)]
self.dbRef.child("Users").child("UserID: \(currentUserID)").child("Account-Creation-Date").setValue([\\How to add my self.userAcct model object in here? Should I add it to an array])
}
})
}
【问题讨论】:
标签: ios swift firebase firebase-realtime-database