#swift #firebase #firebase-realtime-database #swift3
# #swift #firebase #firebase-база данных в реальном времени #swift3
Вопрос:
Я действительно не могу понять, что не так?
Я пытаюсь загрузить некоторые данные настроек с Settings
узла firebase. Тот же код для других узлов в других функциях работает, но этот неоднозначен. Почему?
var ref:FIRDatabaseReference! //Global variable
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
// monitorRegion()
} else {
// Alert to enable location services on iphone first
}
ref = FIRDatabase.database().reference(fromURL: "https://*******.firebaseio.com/")
//The error is here
ref.child("Settings").child("service_types").observe(.value) { (snapshot) in
}
// Do any additional setup after loading the view.
}
Комментарии:
1. Ошибка в строке
ref = ..
илиref.child("Settings")
2. @Dravidian ссылка на дочерний элемент («Настройки»)
3. Проверьте ответ @ronatory? И обновите свой вопрос фактической ошибкой
4. Какие-либо обновления? @KeghamK.
Ответ №1:
Измените это:
ref.child("Settings").child("service_types").observe(.value) { (snapshot) in
}
к этому:
ref.child("Settings").child("service_types").observe(.value, with: { snapshot in
})
См. Также раздел документации firebase Прослушивание событий значений
Ответ №2:
Вы могли бы написать свой вызов примерно так:
ref
.child("Settings")
.child("service_types")
.observe(.value) { (snapshot: FIRDataSnapshot) in
// your code
}
или
ref
.child("Settings")
.child("service_types")
.observe(.value, with: { snapshot in
// your code
})
Ответ №3:
эта функция для меня:
ref.child("Settings").child("service_types").observe(.childAdded, with: { (snapshot) -> Void in
//your code
}