Jesse Gillibrand
Jesse Gillibrand

Reputation: 5

Giving Usernames to users with Firebase & Swift

I am a new to programming, and right now I want to give my users a username and then store it in the firebase real time database. However, every time I run my code it comes up with:

Thread 1: signal SIGABRT

I have checked all of my @IB buttons etc for clashes but there is nothing that I can find. I think I have written code that may be out dated so I am hoping someone can shed some light on my situation and help out!

I think there error is coming from here:

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)
    }

    }

Upvotes: 0

Views: 61

Answers (1)

Pratik Prajapati
Pratik Prajapati

Reputation: 1105

In your crash log saying 'InvalidFirebaseData', reason: '(setValue:) Cannot store object of type UITextField at,

In this line your getting error, because setValue can't accept UITextField as input.

Change your code to :

@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)
}

Upvotes: 1

Related Questions