【发布时间】:2018-12-26 11:11:22
【问题描述】:
我想检查 id 重复
我想制作 id 重复校验码。
所以我得到了用户使用sid = id.getText().toString().trim();
输入的ID
然后制作json 树FirebaseDatabase.getInstance().getReference().child("users").child("id").setValue("add");
通过使用 child() 方法 ...
并使用setvalue() 方法输入值。
因为不可能使用ondatachange() 方法...(我认为这种方法只有在有数据时才有效,所以我放了一些没有用的数据)我稍后会删除setvalue() 方法中的值(还有其他即使没有变化也可以使用的方法...我需要检查数据库内容)
无论如何if (data.getValue()==sid)这部分
我认为它可以检查 id ...
但它不起作用
12-25 21:06:00.771 6700-6700/com.example.pc.login D/myTag: {id=add}
android 日志看起来像这样... id 是子部分... add 是我输入的值
那是getvalue() 方法的结果...
总结
:
1.我怎样才能把用户的id放到firebase db
2.我怎样才能得到除了子部分的唯一id值
当我使用getvalue() 方法时。它需要孩子的名字和我输入的值
所以如果 id 存在...用户制作...用户应该写另一个...
如果不是...firebase db 存储用户创建的 id...
感谢您阅读...帮帮我...
idcheckbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//store the id user created
sid = id.getText().toString().trim();
FirebaseDatabase.getInstance().getReference().child("users").child("id").setValue("add");
FirebaseDatabase.getInstance().getReference().addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
if (data.getValue()==sid) {
Log.d("myTag",""+dataSnapshot.getChildren());
Toast.makeText(MainActivity.this, "aleady exists",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "you can use this id",Toast.LENGTH_SHORT).show();
FirebaseDatabase.getInstance().getReference().child("users").child("id").setValue(sid);
Log.d("myTag",""+data.getValue());
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
【问题讨论】:
标签: java android database firebase