我使用Firebase Admin SDK管理我的用户。 注册后,我会向我的端点发送电子邮件,密码和用户名。 我createUserWithEmailAndPassword并在我的Firestore中创建一个文档
通过这种方式,我可以检查文档是否已存在,并返回用户名/句柄已被使用的错误。
Firestore
- users
- handle
* email
* userId (from createUserWithAndPassword Response)
* createdAt
在用户signInWithEmailandPassword之后,我只有令牌,电子邮件和userId ..但我需要使用句柄才能获得正确的用户详细信息。
我从文档中得到的是有一个默认的displayName属性,但我不知道如何在注册时进行设置。
或者我应该创建一个自定义令牌并将其存储在其中吗。
我不确定该怎么走
感谢您的帮助
答案 0 :(得分:0)
这是您想要的简单方法:
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
// Sign in success
FirebaseUser user = mAuth.getCurrentUser();
UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
.setDisplayName(mName).build();
user.updateProfile(profileUpdates).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "User profile updated.");
}
}
});
}
});
然后,要检索它,请在需要的地方使用它:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// Name, email address etc
String name = user.getDisplayName();
String email = user.getEmail();
}
有多种方法,但我建议使用这种方法:)