Swift / Desencryption en la barra de búsqueda

¡¡¡EDITAR!!!

Obtuve esta barra de búsqueda que con algunos datos necesita descifrarla antes de search. Estoy bastante seguro de haber descubierto dónde descifrarlo. Pero como soy nuevo, realmente no puedo hacer que funcione.

Esta es mi function para los usuarios filtrados. Los datos llamados "Personnr" deben descifrarse antes de la búsqueda. Empiezo obteniendo la cadena "ePersonnr" y la key de encryption de la database. Pero cuando lo ejecuto, simplemente sigue agregando muchos perfiles en la barra de búsqueda.

func filterUsers (searchText:String) { self.filtenetworkingUsers = self.usersArray.filter{ user in var fNavn = false var personNr = false var searchBil = false var telefonNr = false var korekortNr = false //This below is for the decryption databaseRef.child("Buyers").queryOrdenetworking(byChild: "ePersonnr").observe(.childAdded, with: { (snapshot) in let key = snapshot.key let snapshot = snapshot.value as? NSDictionary snapshot?.setValue(key, forKey: "ePersonnr") self.usersArray.append(snapshot) self.ref = Database.database().reference() self.ref.child("Encryption").child("key").observe(.value, with: { (snapshot) in let uid = self.otherUser?["key"] as? String self.otherUser = snapshot.value as? NSDictionary self.otherUser?.setValue(uid, forKey: "key") self.key1 = self.otherUser?["key1"] as? String let input = key let iv = self.key1 //Above is for the decryption if let Navn = user!["Navn"] as? String { fNavn = Navn.lowercased().contains(searchText.lowercased()) } if let Bil = user!["Bil"] as? String { searchBil = Bil.lowercased().contains(searchText.lowercased()) } //Decryption of data if let Personnr = user!["ePersonnr"] as? String { let des = try! input.aesDecrypt(key: self.key1!, iv: iv!) self.Personnr = des personNr = Personnr.lowercased().contains(searchText.lowercased()) } if let Kørekortnr = user!["Kørekortnr"] as? String { korekortNr = Kørekortnr.lowercased().contains(searchText.lowercased()) } if let Telefonnr = user!["Telefonnr"] as? String { telefonNr = Telefonnr.lowercased().contains(searchText.lowercased()) } }) { (error) in print(error) } }) { (error) in print(error) } return fNavn || personNr || searchBil || korekortNr || telefonNr } tableView.reloadData() } 

¡¡¡EDITAR!!!

Revisé otro proyecto y el desencryption funciona como debería. Entonces no son los commands. Debe ser dónde colocar el código. Supongo. Así es como parece si trato de search: https://ibb.co/cngfkb

¿Algunas ideas?