【发布时间】:2021-08-21 10:42:12
【问题描述】:
我正在为 Android 应用程序开发一个使用 java 的登录和注册系统。我使用firebase用电子邮件和密码注册用户,电子邮件、用户名和其他信息将在实时数据库firebase上形成一个继承结构,因为父级有用户ID:
但是,我希望用户名是唯一的,这样如果用户编写的用户名已经存在于父用户名中,他就会识别出另一个孩子是相同的。由于 firebase 不允许您创建具有相同名称的孩子,因此我尝试执行以下操作:
FirebaseDatabase.getInstance().getReference("Usernames").child(us.getText().toString()).setValue("Saved").addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(getApplicationContext(), "Not same username", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(), "same username", Toast.LENGTH_SHORT).show();
}
});
但我不明白为什么,答案总是 OnCompleted,即使孩子与另一个孩子同名,因此用户输入了已输入的用户名。
有人能告诉我如何检查 Firebase 数据库是否因为与另一个名称相同而没有插入子节点
这是我当前的数据库规则:
{
"rules": {
".read": "true",
".write": "true",
}
}
【问题讨论】:
-
不要用答案中的代码修改原始问题中的代码,保持原样。
-
好的@samthecodingman
标签: java firebase firebase-realtime-database children