5

Укажите адрес электронной почты, возможно ли получить идентификатор пользователя? Например,Как получить идентификатор пользователя пользователем Email Firebase android?

Если у меня есть электронная почта переменной, в которой есть электронная почта человека. Могу ли я получить их ID, сделав что-то вроде

String userID = mAuth.DatabaseReference.getuID.(email); 

Извините, если это глупый вопрос.

Редактировать: note. Я ищу, чтобы получить идентификатор человека, который не является текущим пользователем. Поэтому я не могу использовать FirebaseUser user = mAuth.getCurrentUser();

Структура моей базы данных выглядит так, поэтому идентификатор будет сохранен в базе данных уже. Мне просто нужен способ получить его (На приведенной ниже диаграмме у меня нет поля электронной почты, но я буду добавлять его, если кто-нибудь задается вопросом -_-).

Кроме того, если возможно, я хотел бы получить изображение своего профиля либо на основе их электронной почты, либо после того, как я получил идентификатор, через ID.

enter image description here

+0

[Проверьте подобный ответ на свой вопрос. получение идентификатора электронной почты из firebase] (https://stackoverflow.com/a/49002292/9405186) –

ответ

8

Если вы хотите посмотреть пользователь по электронной почте на их доверенный сервере, вы можете использовать Firebase Admin SDK. Из documentation on retrieving user data:

admin.auth().getUserByEmail(email) 
    .then(function(userRecord) { 
    // See the tables above for the contents of userRecord 
    console.log("Successfully fetched user data:", userRecord.toJSON()); 
    }) 
    .catch(function(error) { 
    console.log("Error fetching user data:", error); 
    }); 

Клиент SDKs для Firebase проверки подлинности только обеспечивают доступ к профилю текущего пользователя, прошедшего аутентификацию. Они не предоставляют способ поиска пользователя по их адресу электронной почты. Для того, чтобы позволить стороне клиента поиск, общий способ сделать так, чтобы сохранить UID-на-Email-адрес в базе данных:

"emailToUid": { 
    "[email protected],com": "uidOfSumOne", 
    "[email protected],com": "uidOfPuf" 
} 

С помощью этого простого списка, вы можете искать UID по кодированной электронной почте адрес от:

ref.child("emailToUid").child("[email protected],com").addSingleValueEventListener(... 

Смотрите также:

+0

Итак, мне нужно будет сохранить значение uid, его невозможно получить uid из корневого элемента с помощью электронной почты? также могу ли я получить профиль изображения человека (а не текущего пользователя)? – SumOne

+0

Клиентские SDK для Firebase Authentication предоставляют доступ только к профилю пользователя, прошедшего проверку подлинности. Я объяснил это в своем ответе. –

+0

О, ладно, спасибо. Извините, я не читал полностью. – SumOne

0

Таким образом, вы можете войти в систему пользователю электронной почты и пароль и получить ID:

FirebaseAuth.getInstance().signInWithEmailAndPassword(email,password).addOnSuccessListener(new OnSuccessListener<AuthResult>() { 
      @Override 
      public void onSuccess(AuthResult authResult) { 
       FirebaseUser user = authResult.getUser(); 
      } 
     }); 
Смежные вопросы