Update child values in Firebase with Swift
16,686
You want to change the value of Places
, which is the value in the child of child(uid)
.
let values = ["place": self.placeNameLabel.text]
let ref = FIRDatabase.database().reference().root.child("users").child(uid).updateChildValues(["Places": values])
Author by
user3708224
Updated on June 07, 2022Comments
-
user3708224 almost 2 years
I am trying to implement updating Firebase database once a user taps on a button. When the user logs in (with Facebook in my case), a data structure is created successfully with the initial values in the data tree created.
What I want to accomplish is once the user is in the app and they create a new item it saves it to the database, hence updates the values under one of the already created child values. See my code and screenshot for reference - thanks for any help!
// user taps button to send item to be updated in Firebase data tree func confirmAddPlace() { // add place to tableview array let accessToken = FBSDKAccessToken.current() guard let accessTokenString = accessToken?.tokenString else { return } let credentials = FIRFacebookAuthProvider.credential(withAccessToken: accessTokenString) FIRAuth.auth()?.signIn(with: credentials, completion: { (user, error) in if error != nil { print("Something went wrong with our FB user: ", error ?? "") return } guard let uid = user?.uid else { return } // here is where i am having issues let ref = FIRDatabase.database().reference().root.child("Users").child(uid).child("Places") let values = ["place": self.placeNameLabel.text] ref.updateChildValues(values) }) animateOut() }
func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) { let placeID = place.placeID placesClient.lookUpPlaceID(placeID, callback: { (place, error) -> Void in if let error = error { print("lookup place id query error: \(error.localizedDescription)") return } guard let place = place else { return } }) let selectedPlace = place.formattedAddress if let name = selectedPlace as String! { self.placeNameLabel.text = "Are you sure you would like to add \(name) to your places?" } }