我目前开始在我的 Android 应用程序中使用 Firebase,并使用其 GitHub 上的示例来创建登录和注册活动。
https://github.com/firebase/quickstart-android https://github.com/firebase/quickstart-android
唯一的是我注意到他们的版本只有用于登录和注册的电子邮件和密码。我想在用户注册时添加用户名字段。我确实找到了一些可能提供答案的其他链接,但我知道 Firebase 最近已更改,并且这些答案没有显示与示例相同的注册方法,因此我认为它可能有所不同。这是我的创建账户代码块:
public void createAccount(String email, String password) {
if (!validateForm()) {
return;
}
showProgressDialog();
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Toast.makeText(LoginActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
}
hideProgressDialog();
}
)};
}
What createUserWithEmailAndPassword
创建的是一个内部 firebase 用户,仅用于身份验证(您可以在Auth在新控制台中)。如果您想向该用户添加更多信息,就像 Sahaj 提到的那样,您将需要在 firebase 数据库上创建一个用户节点(YourApp/users/userId
)来处理这个用户名。在此节点中,您将存储要在应用程序中使用的所有用户信息。
在互联网上进行一些研究,您可以找到一些例子像这个 https://github.com/firebase/quickstart-android/blob/master/database/app/src/main/java/com/google/firebase/quickstart/database/SignInActivity.java关于如何正确地做到这一点。
创建用户时您要做的就是调用一个创建新用户的函数。
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Toast.makeText(LoginActivity.this, "An error occurred", Toast.LENGTH_SHORT).show();
} else {
createNewUser(task.getResult().getUser());
}
hideProgressDialog();
}
)};
private void createNewUser(User userFromRegistration) {
String username = "username";
String email = userFromRegistration.getEmail();
String userId = userFromRegistration.getUid();
User user = new User(username, email);
mDatabase.child("users").child(userId).setValue(user);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)