android - Firebase 安卓用户认证
问题描述
我正在为我的 android 应用程序使用 firebase。我正在使用使用电子邮件和密码的 Firebase 身份验证,但我需要保存用户的学生 ID 以及我想要检查它是否唯一的电子邮件和密码。我尝试通过首先保存电子邮件并通过然后我得到它的 uid 并使用相同的 uid 在数据库中保存国家 ID 来添加额外的信息学生 ID,但问题是我想检查那个国家 ID 是否是唯一的。
firebaseDatabase= database.getReference("USERS");
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
String userId = mAuth.getCurrentUser().getUid();
DatabaseReference dr = firebaseDatabase.child(userId);
dr.child("studentID").setValue(sID);
pr.dismiss();
Intent intent = new Intent(MainActivity.this, home.class);
startActivity(intent);
} else if (task.getException() instanceof FirebaseAuthUserCollisionException) {
Toast.makeText(MainActivity.this, "Already Registered!", Toast.LENGTH_LONG).show();
pr.dismiss();
} else {
Toast.makeText(MainActivity.this, "Connection Problem", Toast.LENGTH_LONG).show();
pr.dismiss();
}
}
});
解决方案
在保存额外信息之前,您必须读取数据库并查找 por 国家 id,如果 firebase 返回值,则 id 存在,否则您可以在数据库中创建一个名为您的 ID 的节点。
推荐阅读
- css - React Fontawesome CSS 伪元素不在 div 内呈现,但在 Codepen 中工作
- python - 如何在python中加入或合并
- python - 有更好的方法来编写列表理解吗?
- asynchronous - 当未来包装它被丢弃时,如何停止运行同步代码?
- sql - 查询使用 CASE WHEN 嵌套 AND 和 OR 函数
- javascript - 如何使用 JavaScript/jQuery 将多个键值对保存到一个 cookie?
- python - 使用 Simulink TCP/IP 发送块向远程机器发送连续数据
- python - 如何在 Python 中将继承与模拟 autospec 结合起来
- linux - 检查目录上次更新时间的脚本
- skiasharp - 用什么方法告诉画布使用 Skiasharp.Views.iOS 重绘自己?