【问题标题】:data not showing up in firebase database数据未显示在 firebase 数据库中
【发布时间】:2018-07-06 07:23:51
【问题描述】:

我试图通过包含所有 UITextFields(密码、确认密码、名字、姓氏、电话号码)的创建帐户视图控制器添加用户数据。当点击创建帐户按钮时,用户的电子邮件会显示在 firebase 网站的身份验证部分,但来自名字、姓氏和电话号码文本字段的用户信息不会传递到数据库中。我是 iOS 开发的新手,从未使用过 firebase,所以我不确定问题是什么。应用运行时不会崩溃。

下面是我的创建帐户视图控制器

提前致谢

import UIKit
import FirebaseAuth
import QuartzCore
import FirebaseDatabase
import Firebase

class CreateAccount: UIViewController {

    var refUsers: DatabaseReference!

    @IBOutlet weak var emailTextField: UITextField!
    @IBOutlet weak var passwordTextField: UITextField!
    @IBOutlet weak var confirmPasswordTextField: UITextField!
    @IBOutlet weak var firstNameTextField: UITextField!
    @IBOutlet weak var lastNameTextField: UITextField!
    @IBOutlet weak var phoneNumberTextField: UITextField!

    @IBOutlet weak var alreadyHaveAccountLabel: UILabel!

    @IBAction func loginButtonTapped(_ sender: Any) {

         performSegue(withIdentifier: "showLoginScreen", sender: self)
    }


    override func viewDidLoad() {
        super.viewDidLoad()
        self.refUsers = Database.database().reference().child("Users");
        // Do any additional setup after loading the view.
    }


    override func viewDidAppear(_ animated: Bool) {


        if Auth.auth().currentUser != nil {

            print("success")

            self.presentMainScreen()
        }
    }


    @IBAction func createAccountTapped(_ sender: Any) {

        if let email = emailTextField.text, let password = passwordTextField.text {

            Auth.auth().createUser(withEmail: email, password: password, completion:{ user, error in
                if let firebaseError = error {
                    print(firebaseError.localizedDescription)
                    return
                } else {


                    self.addUser()

                    print("this is the first name:", self.firstNameTextField.text!)
                    print("this is the last name:", self.lastNameTextField.text!)
                    print("this is the phone number" , self.phoneNumberTextField.text!)
                    print("success")
                    self.presentMainScreen()
            }




            })

        }
    }

    func addUser(){
        let key = refUsers.childByAutoId().key
        let user = ["id":key,
                    "FirstName":firstNameTextField.text! as String,
                    "LastName":lastNameTextField.text! as String,
                    "PhoneNumber":phoneNumberTextField.text! as String
                    ]

        refUsers.child(key).setValue(user)
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */


    func presentMainScreen(){
        let mainstoryboard = UIStoryboard(name: "Main", bundle: nil)
        let mainTabController = mainstoryboard.instantiateViewController(withIdentifier: "MainTabController") as! MainTabController
        mainTabController.selectedViewController = mainTabController.viewControllers?[0]
        self.present(mainTabController, animated: true, completion: nil)
        //let storyboard:UIStoryboard = UIStoryboard(name:"Main", bundle:nil)
        //let loggedInVC:LoggedInVC = storyboard.instantiateViewController(withIdentifier: "LoggedInVC") as! LoggedInVC
        //self.present(loggedInVC, animated: true, completion: nil)
    }



}

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    试试这个: 代替设定值使用更新值

    let childUpdates = ["/user/\(key)": user]
    refUser.updateChildValues(childUpdates)
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多