Recibo el siguiente error mientras observo los datos de la base de datos en tiempo real de firebase. Lo que quiero hacer es si el error es Permiso denegado, quiero hacer una acción diferente. ¿Cómo puedo saber si el error es Permiso denegado?
error :
Opcional (Error Domain=com.firebase Code=1 "Permiso denegado" UserInfo={NSLocalizedDescription=Permiso denegado})
mi código:
func observeData(completion: @escaping (Bool) -> Void){ Database.database().reference().child("values").observe(.value, with: { (snap) in completion(true) }){ (error) in let errorCode = (error as NSError).code if errorCode == .?????? { //-->> what to come here self.anotherFunc() //--> if Permission Denied call this func completion(false) }else{ completion(true) } } }Esto es lo que hice para los errores de autenticación en mi aplicación Firebase. No estoy seguro de si funcionará en su contexto, pero puede que le resulte útil.
func firebaseErrorParser(error: Error) -> String? { if let errorCode = AuthErrorCode(rawValue: error._code) { // <- here!! switch errorCode { // switch case case .invalidVerificationCode: return "Wrong code or phone number!" default: return "An error occured... " } } else { return nil } }Solo tenía una entrada en mi interruptor/caso porque el único error sobre el que quería dar comentarios específicos al usuario era si el usuario ingresaba el número de teléfono incorrecto. Parece que puedes hacer algo similar con los errores de permisos de Firestore