На самом деле приложение реализует вход через Facebook и Google с использованием Firebase Auth.
Теперь нам нужно реализовать вход с помощью электронной почты / пароля (также с Firebase).
Сначала мы изменили параметр на сервере, чтобы разрешить несколько учетных записей:
![enter image description here](https://i.stack.imgur.com/J9thy.png)
![enter image description here](https://i.stack.imgur.com/pPr41.png)
После этого я реализовал регистр пользователь вроде:
this.firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
//setup new user info to db
}else{
Logger.d(task.exception)
//show error
}
}
И вот где происходит странное поведение.
Допустим, у меня есть пользователи с электронной почтой: test1@gmail.com
| test2@gmail.com
| test3@gmail.com
Пользователь с электронной почтой test1@gmail.com
зарегистрировался "long time a go" со входом в Google, поэтому его учетная запись создана в Firebase Auth.
Но пользователи test2 и test3, где раньше не регистрировались.
Выполнив проверку, чтобы проверить, что все в порядке, мы поняли, что пользователи с электронной почтой test2@gmail.com
и test3@gmail.com
могут без проблем зарегистрироваться в Google, Facebook и создать новую с помощью email/password
, но пользователь с электронной почтой test1@gmail.com
получает ошибку:
com.google.firebase.auth.FirebaseAuthUserCollisionException: The email address is already in use by another account.
И это странно, потому что пользователи test2
и test3
сначала создали логин с помощью Google, но позволяют создать новый «entry» в Firebase Auth.
Существует ли какое-либо «странное» ограничение для пользователей, созданных до обновления конфигурации на server ?