Nzonzi10
Nzonzi10

Reputation: 1

having problems in adding more than 1 information in the same child firebase

I want to achieve this:

I want to achieve this

This is my current database. It only shows 1 information but it should be showing 3 messages:

This is my current database, it only shows 1 information but it should be showing 3 messages

// loading the info onto firebase database
let uid = Auth.auth().currentUser?.uid
let ref = Database.database().reference()

ref.child("workout").observeSingleEvent(of: .value, with: { (snapshot) in
    print("Got Snapshot")
    print(snapshot.childrenCount)
    let chilidCount = snapshot.childrenCount
    print(chilidCount)
    let post:[String:String] = ["\(chilidCount + 1)": textField.text!]
    print(post)
    ref.child("workout").child(uid!).setValue(post)
})
self.tableView.reloadData()

This is my code so far. I tried looking at other previous question from StackOverflow and also looked at firebase documentation but could not find anything useful.

This is my tableview

this is my tableview

Upvotes: 0

Views: 53

Answers (1)

lajosdeme
lajosdeme

Reputation: 2407

Try making a dictionary of the values you want to upload to your FIR Database.

I assume you want to upload the values to your database in a "workout" folder, and in that upload values for each user. You should do the following:

let uid = Auth.auth().currentUser?.uid
let ref = Database.database().reference()

//Reference to the location where the messages get saved to
let userWorkoutRef = ref.child("workout").child(uid!)

userWorkoutRef.observeSingleEvent(of: .value, with: { (snapshot) in
    // Get the number of messages
    let messagesCount = snapshot.childrenCount

//Making a dictionary: the key is the current number of messages plus one, the value is the current text entered in the text field
let valueToUpload = ["\(messagesCount + 1)": textField.text!]

//Uploading the dictionary to the database
userWorkoutRef.updateChildValues(valueToUpload) { (err, ref) in
    if err != nil {
        print(err!.localizedDescription)
        return
    } else {
        print("success uploading data to db!")
    }
}

}

Upvotes: 1

Related Questions