Обработка ошибок Firebase для создания учетной записи и входа в систему - Pyrebase - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь обработать ошибки, когда пользователи регистрируются или входят в мое приложение. Первая ошибка, которую я пытаюсь устранить, - это когда пользователь пытается создать учетную запись с электронной почтой, которая уже существует в базе данных. Я получаю следующее HTTPError:

 requests.exceptions.HTTPError: [Errno 400 Client Error: Bad Request for url: https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=] {
   "error": {
     "code": 400,
     "message": "EMAIL_EXISTS",
     "errors": [
       {
         "message": "EMAIL_EXISTS",
         "domain": "global",
         "reason": "invalid"
       }
     ]
   }
 }

Я хочу получить доступ к значению "message": "EMAIL_EXISTS", указанному ниже, но я не уверен, как это сделать. Я добавил приведенный ниже код, но он выдает следующую ошибку:

     error_message = error["error"]["message"]
 TypeError: 'HTTPError' object is not subscriptable
import requests
import pyrebase

class CreateAccount():

    def create_account(self):

        try:
            auth.create_user_with_email_and_password(self.email, self.password)

        except requests.exceptions.HTTPError as error:
            print(error)
            error_message = error["error"]["message"]
            print(error_message)

1 Ответ

0 голосов
/ 29 апреля 2020

После долгих поисков я нашел ответ на эту проблему:

        except requests.HTTPError as e:
            error_json = e.args[1]
            error = json.loads(error_json)['error']['message']
            if error == "EMAIL_EXISTS":
                print("Email already exists")
...