Ich arbeite an Android-App, in der ich eindeutige IDs der Benutzer in Firebase-Datenbank speichern möchte, um dies zu erreichen, habe ich eine Wurzel, namens "Benutzer" erstellt und speichert alle die eindeutigen IDs des Benutzers in diesem Stamm.Kontrolle des Auftretens von onChildAdded Ereignis in Firebase-Datenbank
Um die Eindeutigkeit zu überprüfen, muss ich jedes Kind von "Users" durchlaufen und nach Überprüfung der Eindeutigkeit werde ich die UniqueID zum "Users" root hinzufügen oder den Benutzer benachrichtigen, dass uniqueId nicht verfügbar ist.
Wenn ich Einzigartigkeit zu überprüfen, ist es conditionals (if/else) vor dem Auftreten eines Ereignisses OnChildAdded ausführen, wie einige Code auszuführen (erwähnt in meinem Code) nach dem Auftreten OnChildAdded Ereignis
My-Code
postBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!uniqueIdText.getText().toString().trim().equals("")) {
uniqueness = true;
users.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.getKey().equals(uniqueIdText.getText().toString().trim()))
uniqueness = false;
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
else if(uniqueIdText.getText().toString().trim().equals(""))
Toast.makeText(LoginActivity.this,"Please enter id",Toast.LENGTH_LONG).show();
//======================How to execute it(code below) after occurrence of OnChildAdded event====================
if (uniqueness){
DatabaseReference usersInfo = users.child(uniqueIdText.getText().toString().trim());
startActivity(new Intent(LoginActivity.this, MainActivity.class));
}
else{
if(!uniqueIdText.getText().toString().trim().equals(""))
Toast.makeText(LoginActivity.this, "ID not available, Please enter a new one", Toast.LENGTH_SHORT).show();
}
}
});