【问题标题】:How to detect and handle firebase Permission Denied error code with swift如何使用 swift 检测和处理 firebase Permission Denied 错误代码
【发布时间】:2022-01-27 09:27:51
【问题描述】:

我在观察来自 firebase 实时数据库的数据时收到以下错误。我想做的是,如果错误是 Permission Denied,我想做一个不同的动作。如何判断错误是否为 Permission Denied?

错误:

可选(错误域=com.firebase Code=1 "Permission Denied" UserInfo={NSLocalizedDescription=Permission Denied})

我的代码:

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)
        }
    }
}

【问题讨论】:

  • 您的代码实际上非常好。这是细微的变化;您有一个调用“观察数据”的函数,该函数在该调用之后包含一个闭包。在 - that - 闭包中,您正在处理返回值 true 或 false。如果返回 false 值,则调用您要执行的下一个函数。

标签: swift firebase firebase-realtime-database


【解决方案1】:

这就是我为我的 firebase 应用程序中的 Auth 错误所做的。不确定它是否适用于您的环境,但您可能会发现它很有用。

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
    }
}

我的开关/机箱中只有一个条目,因为我想向用户提供具体反馈的唯一错误是用户输入了错误的电话号码。看来您可以对 firestore 权限错误执行类似的操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2021-06-04
    • 2022-07-18
    • 2020-11-29
    • 1970-01-01
    • 2022-11-10
    • 2013-04-14
    相关资源
    最近更新 更多