我試圖在用戶點擊按鈕時實現更新Firebase數據庫。當用戶登錄時(在我的情況下用Facebook),數據結構已成功創建,並且數據樹中的初始值已創建。使用Swift更新Firebase中的子值
我想要完成的是一旦用戶在應用程序中,他們創建一個新的項目將其保存到數據庫,因此更新下一個已創建的子值的值。查看我的代碼和截圖以供參考 - 感謝您的幫助!
// 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?"
}
}
謝謝!這有助於我嘗試的一件事。添加一些但是...我試圖創建一個項目,每當用戶添加一個新的地方數組...所以不只是更新相同的子值,以及只保存一部分字符串到數據庫。我在帖子中添加了額外的代碼,用於在用戶從GMSAutocompleteViewController ....選擇後傳遞的內容,所以我只想將名稱值保存到Firebase。再次感謝! – user3708224