使用Firebase和Swift向用户提供用户名

时间:2019-05-21 08:06:49

标签: swift firebase firebase-realtime-database

我是编程新手,现在我想给我的用户一个用户名,然后将其存储在Firebase实时数据库中。但是,每次运行代码时,它都会出现:

  

线程1:信号SIGABRT

我已经检查了所有@IB按钮等是否存在冲突,但是找不到任何东西。我想我已经写了可能过期的代码,所以我希望有人可以阐明我的情况并帮忙!

我认为这里有错误:

import UIKit
import Firebase

class HandlerViewController: UIViewController {

    @IBOutlet weak var username: UITextField!

    var user : AnyObject?
    var ref = DatabaseReference()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.user = Auth.auth().currentUser
        ref = Database.database().reference()

        // Do any additional setup after loading the view.
    }
    @IBAction func joinHaps(_ sender: Any) {

        ref.child("Usernames").childByAutoId().setValue(username)
        self.performSegue(withIdentifier:"HomeScreenOne", sender: nil)
    }

    }

1 个答案:

答案 0 :(得分:1)

在崩溃日志中说'InvalidFirebaseData', reason: '(setValue:) Cannot store object of type UITextField at

在这一行中您会遇到错误,因为setValue无法接受UITextField作为输入。

将代码更改为:

@IBAction func joinHaps(_ sender: Any) {
    //username is UITextfield, you can fetch text from it using .text

    ref.child("Usernames").childByAutoId().setValue(username.text ?? "")
    self.performSegue(withIdentifier:"HomeScreenOne", sender: nil)
}