FIrebase мобильная аутентификация и сохранение пользователя в базе данных - PullRequest
1 голос
/ 14 мая 2019

Я аутентифицирую пользователей по номеру мобильного телефона в Firebase.В данный момент я в тестовом режиме.Моя идея заключается в том, что если номер мобильного телефона не использовался ранее, то создается новый пользователь.Здесь я использую функцию saveUserToFirebaseDatabase.Я думал, что эта функция будет проверять, существует ли пользователь уже.Но так, как я написал это сейчас, это не так.Следовательно, когда пользователь выходит из системы и входит в систему, значения дочернего элемента, которые я вставил куда-то еще, теряются.Это очевидно, потому что функция saveUserToFirebaseDatabase воссоздает пользователя.

Здесь я наблюдаю интересную вещь, которая заключается в том, что идентификатор пользователя, созданный для номера мобильного телефона, остается одинаковым для всех входов в систему.Это еще больше сбивает меня с толку насчет функции saveUserToFirebaseDatabase.Вот мой код для сохранения пользователя в базе данных.

private fun saveUserToFirebaseDatabase(){
    val uid = FirebaseAuth.getInstance().uid ?: ""
    val ref = FirebaseDatabase.getInstance().getReference("/users/$uid")
    val user = User(uid, "","+91"+MobileNumber.text.toString(), "")
    ref.setValue(user)
}

class User(val uid: String, val username: String, val mobile: String, val mail: String)

Процедура аутентификации пользователя соответствует документации Firebase и работает без сбоев.Может кто-нибудь объяснить, как работает эта функция saveUserToFirebaseDatabase.Почему uid всегда остается постоянным, хотя имя пользователя и почта другого ребенка сбрасываются до ""

1 Ответ

0 голосов
/ 14 мая 2019

Это ваш код:

private fun saveUserToFirebaseDatabase(){
val uid = FirebaseAuth.getInstance().uid ?: ""
val ref = FirebaseDatabase.getInstance().getReference("/users/$uid")
val user = User(uid, "","+91"+MobileNumber.text.toString(), "")
ref.setValue(user)
}

class User(val uid: String, val username: String, val mobile: String, val mail: String)

Сначала вы получаете userId, затем добавляете userId под users в базу данных.

После этого вы создаетеэкземпляр класса User и добавьте user в базу данных.

Этот userId является идентификатором текущего пользователя, вошедшего в систему.Если в систему войдет новый аутентифицированный пользователь, то в базу данных будет добавлен новый пользователь.

userId генерируется случайным образом, его создание не имеет ничего общего с электронной почтой, Facebook или любым другим типом входа.

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