Это было бы неправильно, потому что вы бы наблюдали одного и того же ребенка несколько раз. Для того, что я вижу, я бы предложил что-то вроде:
class FirebaseObserver {
var param1: Float = 0.0
var param2: Float = 0.0
let databaseReference: FIRReference // I don't remember the type of that, sorry!
init() { addObserver() }
deinit { // Remove observer }
func addObserver() {
databaseReference.child("users").observe(.childAdded, with: { snapshot in
checkAddedChild(value: snapshot.value)
}
}
func checkAddedChild(value: Float) {
if value > param1, value < param2 {
// DO SOMETHING
}
}
И из вашего основного класса:
class MainClass {
let firebaseObserver = FirebaseObserver()
func somethingThatChangedParams() {
firebaseObserver.param1 = 10
firebaseObserver.param2 = 20
}
Итак, у вас будет только один наблюдатель, и он будет проверять добавленные дочерний, значения можно обновить в любое время.