Я реализовал в своем приложении два типа аутентификации: анонимную и 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.
Как этого избежать?