のバック一つのアイテムを取得するので、私はその後、シミュレータでアプリを起動し、私はスナップショットを取得し、その後firebaseデータベースに新しい「アイテム」を追加するたびそのスナップショットはviewdid内に出て、次に予想どおりのすべてがコンソールルに表示されますが、@IBActionwhich広告の後にFirebaseのアイテム( - > CourseName、AddDate、AmountOfHoles)をコンソールに取得するだけです(AddedDateとAmonutOfHoleはnilです)しかし、firebaseコンソールですべてが表示されます...? 私はどのようにデータ(AddedDate、CourseName ...)をエラーなしでスナップショットから取得し、それを私のテーブルビューに追加することができますか?
import UIKit
import Firebase
class CoursesViewController: UITableViewController {
var ref = FIRDatabaseReference.init()
override func viewDidLoad() {
ref = FIRDatabase.database().reference()
}
//TODO prevent crash when nil
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
var CourseRef = ref.child("Course")
//Get Snapshot from Course containing all children
var refhandlr = CourseRef.observeEventType(FIRDataEventType.ChildAdded, withBlock: { (snapshot) in
let CourseName = snapshot.value!["CourseName"] as! String
let AmonutOfHoles = snapshot.value!["AmountOfHoles"] as! String
let AddedDate = snapshot.value!["AddedDate"] as! String
print(snapshot.value)
}, withCancelBlock: { error in
})
}
@IBAction func addButtonDidTouch(sender: AnyObject) {
// Alert View for input
let alert = UIAlertController(title: "Course Item",message: "Add Course",preferredStyle: .Alert)
let saveAction = UIAlertAction(title: "Save", style: .Default) { (action: UIAlertAction) -> Void in
//Get Date String
let date = NSDate()
print(date)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let dateString = dateFormatter.stringFromDate(date)
print(dateString)
let courseField = alert.textFields![0]
let holesField = alert.textFields![1]
let Course = self.ref.child("Course").childByAutoId()
let amountOfHolesRef = Course.child("AmountOfHoles")
let courseNameRef = Course.child("CourseName")
let dateRef = Course.child("AddedDate")
courseNameRef.setValue(courseField.text)
amountOfHolesRef.setValue(holesField.text)
dateRef.setValue(dateString)
}
//Cancel
let cancelAction = UIAlertAction(title: "Cancel", style: .Default) { (action: UIAlertAction) -> Void in
}
//TextField placeholder in alert
alert.addTextFieldWithConfigurationHandler {
(courseField: UITextField!) -> Void in
courseField.placeholder = "Course Name"
}
alert.addTextFieldWithConfigurationHandler {
(holesField: UITextField!) -> Void in
holesField.placeholder = "Holes (6/9/18)"
}
//Add alert
alert.addAction(saveAction)
alert.addAction(cancelAction)
presentViewController(alert, animated: true, completion: nil)
}
}
は[MCVE]お願いします。 – philipxy