在我的应用中,我正在添加用户并将其详细信息存储到我的FireBase数据库中。我的一个孩子是连线号码。两个用户不应具有相同的连接号。因此,当我首先添加一个新孩子时,它应检查我的数据库中的连接号。如果存在则应显示吐司。 这是我的用户添加到我的数据库的代码。
conAddBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
key = mdata.push().getKey();
final String selectArea = addConSpinner.getSelectedItem().toString();
final String due = dueET.getText().toString();
final int mDue = Integer.parseInt(due);
String connectionNum = conNumET.getText().toString();
connectionNum = "Connection Number = " + connectionNum;
final String number = conNumET.getText().toString();
String doorNum = conDoorET.getText().toString();
doorNum = "Door Number = " + doorNum;
String conName = conNameET.getText().toString();
conName = "Name = " + conName;
final String name = conNameET.getText().toString();
String phoneNum = conPhnNumET.getText().toString();
phoneNum = "Phone Number = " + phoneNum;
String aadharNum = conAthreNumET.getText().toString();
aadharNum = "Aadhar Number = " + aadharNum;
String rationNum = conRaCaNumET.getText().toString();
rationNum = "Ration Number = " + rationNum;
ConnectionInformation cInfo = new ConnectionInformation(doc, due, selectArea, finalConnectionNum, finalDoorNum, finalConName, finalPhoneNum, finalAadharNum, finalRationNum,mDue);
mdata.child(selectArea).child(key).setValue(cInfo);
Connections connect = new Connections(number, name, due, doc);
connection.child(selectArea).child(key).setValue(connect);
totalConecinArea = FirebaseDatabase.getInstance().getReference().child("users").child(userID).child("Total No of Connections");
totalConecinArea.child("Total").child(selectArea).child(key).child(number).setValue(mDue);
totalNoConnectionDB.child("Total").child(key).child(number).setValue(mDue);
toast("New Connection " + finalConnectionNum + "," + finalConName + " is added");
Intent i = new Intent(AddConnection.this, AreaGridActivity.class);
startActivity(i);
这是我的数据库结构。DataBase Structure
如果您需要任何额外信息,请询问..
答案 0 :(得分:0)
在您的情况下,您需要获取数据库的dataSnapShot并添加if语句以检查该值是否存在。所以你的代码应该是这样的,
connection.child(selectArea).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
if (ds.child("conecNum").getValue().equals(number)) {
toast("Connection Number Already Exists");
} else {
ConnectionInformation cInfo = new ConnectionInformation(doc, due, selectArea, finalConnectionNum, finalDoorNum, finalConName, finalPhoneNum, finalAadharNum, finalRationNum, mDue);
mdata.child(selectArea).child(key).setValue(cInfo);
Connections connect = new Connections(number, name, due, doc);
connection.child(selectArea).child(key).setValue(connect);
totalConecinArea = FirebaseDatabase.getInstance().getReference().child("users").child(userID).child("Total No of Connections");
totalConecinArea.child("Total").child(selectArea).child(key).child(number).setValue(mDue);
totalNoConnectionDB.child("Total").child(key).child(number).setValue(mDue);
toast("New Connection " + finalConnectionNum + "," + finalConName + " is added");
Intent i = new Intent(AddConnection.this, AreaGridActivity.class);
startActivity(i);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});