Как избежать обнуления FirebaseUser при связывании анонимной учетной записи с Google? - PullRequest
0 голосов
/ 25 мая 2020

Я реализовал в своем приложении два типа аутентификации: анонимную и Google. Я также предоставляю анонимному пользователю возможность стать постоянным пользователем, используя:

mAuth.getCurrentUser().linkWithCredential(credential).addOnCompleteListener(...)

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

This credential is already associated with a different user account.

Что правильно поскольку этот пользователь уже существует, но проблема в том, что объект FirebaseUser становится пустым, и приложение больше не может использоваться, потому что мои правила установлены на:

match /users/{uid} {
  allow read, write: if request.auth.uid != null;
}

И я получаю эту ошибку:

PERMISSION_DENIED: Missing or insufficient permissions.

Как этого избежать?

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