Я создал приложение с несколькими вариантами входа, такими как электронная почта и пароль, или с учетной записью Google.
Каждый раз, когда пользователь входит в систему, я сохраняю некоторые данные о нем, такие как данные создания учетной записи, псевдоним и т. д.
Я храню его в своей базе данных Firebase по следующему пути:
Пользователи (коллекция) -> auth.getuid (документ с уникальным идентификатором) -> UserData (коллекция) -> некоторые поля
Поэтому, когда я вхожу в систему, используя электронную почту и пароль, и использую для аутентификации, я могу получить уникальный идентификатор, используя auth.getid
. Таким образом я удостоверяюсь, что не будет 2 одинаковых документа для разных пользователей.
Теперь, если я использую вход в Google, используя следующее:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RequestSignInCode){
GoogleSignInResult googleSignInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (googleSignInResult.isSuccess()){
GoogleSignInAccount googleSignInAccount = googleSignInResult.getSignInAccount();
FirebaseUserAuth(googleSignInAccount);
FirebaseFirestore db = FirebaseFirestore.getInstance();
Map<String, Object> user = new HashMap<>();
user.put("username", googleSignInAccount.getEmail());
user.put("email",googleSignInAccount.getEmail());
user.put("dateCreated", FieldValue.serverTimestamp());
db.collection( "Users" ).document(auth.getUid()).collection( "UserData" ).add( user );
Intent intent = new Intent( SignInActivity.this, DiscoverActivity.class );
startActivity(intent);
finish();
}
}
}
Есть ли что-нибудь эквивалентное? к auth.getuid при использовании входа в Google, чтобы я мог создать уникальный документ для этого пользователя?
Или, что еще лучше, можно ли как-то использовать auth.getID? потому что если во всем моем коде, когда я использовал электронную почту и пароль для входа, я мог запросить, используя auth.getuid
, то теперь я не смогу и мне нужно будет создать отдельный запрос на основе some google.id
?
Спасибо