0
Firebase 데이터베이스에 데이터 저장을 테스트하려고하는데 몇 가지 문제가있었습니다. setValue 메소드가 Firebase 데이터베이스로 업데이트되지 않습니다.
var ref = FIRDatabase.database().reference()
var user = FIRAuth.auth()?.currentUser
@IBOutlet weak var titleEntry: UITextField!
@IBOutlet weak var townAndZip: UITextField!
@IBOutlet weak var pickPrice: UISegmentedControl!
@IBOutlet weak var pickDuration: UISegmentedControl!
@IBAction func tapBackground(sender: AnyObject) {
view.endEditing(true)
}
@IBAction func postTask(sender: AnyObject) {
if ((titleEntry.text?.isEmpty) != nil && (townAndZip.text?.isEmpty) != nil) {
var price:String = pickPrice.titleForSegmentAtIndex(pickPrice.selectedSegmentIndex)!
var duration:String = pickDuration.titleForSegmentAtIndex(pickDuration.selectedSegmentIndex)!
self.ref.setValue(["title": titleEntry.text!])
self.ref.child("tasks").child(user!.uid).setValue(["price": price])
self.ref.child("tasks").child(user!.uid).setValue(["duration": duration])
self.ref.child("tasks").child(user!.uid).setValue(["town_zip": townAndZip.text!])
self.performSegueWithIdentifier("postAdd", sender: self)
print("Posted!")
} else {
let alert = UIAlertController(title: "Error", message: "Please make sure you filled in everything.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Understood!", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
이 아무리 입력 무엇 앱이 SEGUE을 수행하지 내 중포 기지 데이터베이스에 업데이트하지 않습니다 다음은 사용자가 전송 버튼을 누를 때에 내가 가지고있는 코드입니다. 또한 필드 중 하나에 대해서만 데이터를 입력해도 계속 segue를 수행하고 경고를 표시하지 않습니다. 나는 Firebase 자체에 문제가 있다고 생각했지만, 아마 찾을 수없는 실수 일 가능성이 높습니다. 어떤 도움이라도 대단히 감사하겠습니다.
나는 이것이 확실하지 않지만 if 문 중 텍스트 필드가 비어 있는지 확인하고 있습니까? 그렇다면 왜 isEmpty에 부울을 반환 할 때 그것을 체크하고 있습니까? 그것을 제거해보십시오 –
'if! (titleEntry.text? .isEmpty) '이어야합니다. –
교육용 추측 : 사용자가 로그인 한 후 코드가 실행되고 있습니까? 그렇지 않은 경우 데이터베이스는 기본적으로 인증되지 않은 액세스를 거부하도록 구성됩니다. 이 페이지의 첫 번째 파란색 메모를 참조하십시오. https://firebase.google.com/docs/database/ios/save-data –