gpt4 book ai didi

java - 谷歌使用 Firebase 登录时的唯一 ID

转载 作者:行者123 更新时间:2023-11-30 04:57:57 25 4
gpt4 key购买 nike

我创建了一个具有多个登录选项的应用程序,例如电子邮件和密码或使用谷歌帐户。

每次用户登录时,我都会保存一些相关数据,例如帐户创建数据、昵称等。

我将其存储在我的 Firebase 数据库中的以下路径中:

Users(集合)-> auth.getuid(具有唯一id的文档)-> UserData(集合)->一些字段

因此,当我使用电子邮件和密码登录并进行身份验证时,我可以使用 auth.getid 获得唯一 ID .通过这种方式,我可以确保不同用户不会有 2 个相同的文档。

现在,如果我通过以下方式使用谷歌登录:

@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();
}

}
}

使用 google 登录时是否有与 auth.getuid 等效的东西,以便我可以为该用户创建一个唯一的文档?

或者更好的是,我还能以某种方式使用 auth.getID 吗?因为如果在我的所有代码中,当我使用电子邮件 + 密码登录时,我可以使用 auth.getuid 进行查询,现在我将无法并且需要基于 some google.id 创建一个单独的查询?

谢谢

最佳答案

任何 Firebase 身份验证用户都有一个 UID,您可以使用它来识别该用户。他们使用哪个提供商登录并不重要(电子邮件/密码、谷歌或任何其他)。当您允许同一用户与不同的提供商签名时,此 UID 甚至可以工作,并且您 link those accounts .

关于java - 谷歌使用 Firebase 登录时的唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com