Как разобрать код ошибки iOS Firebase Storage в Swift? - PullRequest
0 голосов
/ 17 февраля 2020

Как я могу разобрать следующую ошибку Firebase Storage в Swift?

storageRef.delete { (error) in   
    if let error = error {    
        print(error)       
    }            
}

Консоль печати:

Error Domain=FIRStorageErrorDomain Code=-13010 "Object images/users/UBTXiedh11fT0s0BydkMuXk2k622/xyz.jpg does not exist." UserInfo={object=images/users/UBTXiedh11fT0s0BydkMuXk2k622/xyz.jpg, ResponseBody={
  "error": {
    "code": 404,
    "message": "Not Found.  Could not delete object",
    "status": "DELETE_OBJECT"
  }
}, bucket=someApp-10010010.appspot.com, data={length = 121, bytes = 0x7b0a2020 22657272 6f72223a 207b0a20 ... 54220a20 207d0a7d }, data_content_type=application/json; charset=UTF-8, NSLocalizedDescription=Object images/users/UBTXiedh11fT0s0BydkMuXk2k622/xyz.jpg does not exist., ResponseErrorDomain=com.google.HTTPStatus, ResponseErrorCode=404}

Я знаю, что есть StorageErrorCode, но я не знаю, как получить в него необработанное значение.

if let errorCode = StorageErrorCode(rawValue: Int) {
    ...
}

Цель состоит в том, чтобы иметь возможность включить сам код ошибки (т.е. 404).

1 Ответ

2 голосов
/ 17 февраля 2020

Вы должны привести свою ошибку как NSError, чтобы получить из нее значение кода (целое число). Затем вы можете включить объект StorageErrorCode (перечисление), используя код ошибки в качестве необработанного значения.

storageRef.delete { (error) in

    if let error = error as NSError? {

        let code = StorageErrorCode(rawValue: error.code)

        switch code {

        case .objectNotFound:
            print("object not found") // this is your 404

        default:
            break

        }

    }

}

Документация по этому вопросу (iOS Firebase Storage) очень тонкая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...