Я хочу проверить имя и активацию из базы данных USER, если она существует, следует проверить базу данных Activationcode. если он существует в обоих, он должен отображать ошибку. но если он существует только в базе данных USER, он должен перейти к следующему действию, а также сохранить имя и данные активации в базе данных Activationcode
package com.codrata.concisessc_106;
import android.Manifest;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.codrata.concisessc_106.ActivatedApp.Main2ActivityActivated;
import com.codrata.concisessc_106.Common.Common;
import com.codrata.concisessc_106.Model.ActivationCode;
import com.codrata.concisessc_106.Model.User;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class ActivationActivity extends AppCompatActivity {
EditText edtcode1, edtphone1;
TextView actvkey;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activation);
edtcode1 = (EditText) findViewById(R.id.edtcode1);
edtphone1 = (EditText) findViewById(R.id.edtphone1);
actvkey = (TextView) findViewById(R.id.actvkey);
}
//int firebase
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference table_user = database.getReference("User");
final DatabaseReference table_activationcode = database.getReference("ActivationCode");
public void main2Activity(View view) {
final ProgressDialog mDialog = new ProgressDialog(ActivationActivity.this);
mDialog.setMessage("Please Wating...");
mDialog.show();
table_activationcode.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.child(edtphone1.getText().toString()).exists()) {
//get user information
mDialog.dismiss();
ActivationCode activationCode = dataSnapshot.child(edtphone1.getText().toString()).getValue(ActivationCode.class);
activationCode.setCode(edtphone1.getText().toString());
if (activationCode.getCode().equals(edtcode1.getText().toString())) {
Toast.makeText(ActivationActivity.this, "Activation Code Has being Used", Toast.LENGTH_SHORT).show();
} else {
mDialog.dismiss();
ActivationCode code = new ActivationCode(edtphone1.getText().toString(),edtcode1.getText().toString());
table_user.child(edtphone1.getText().toString()).setValue(activationCode);
Toast.makeText(ActivationActivity.this, "Activation Code Has being Used", Toast.LENGTH_SHORT).show();
}
}else{
table_user.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.child(edtphone1.getText().toString()).exists()) {
//get user information
mDialog.dismiss();
User user = dataSnapshot.child(edtphone1.getText().toString()).getValue(User.class);
user.setPhone(edtcode1.getText().toString());
if (user.getPin().equals(edtcode1.getText().toString())) {
table_activationcode.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mDialog.dismiss();
//ActivationCode activationCode = dataSnapshot.child(edtphone1.getText().toString()).getValue(ActivationCode.class);
// activationCode.setCode(edtphone1.getText().toString());
ActivationCode code = new ActivationCode(edtphone1.getText().toString(),edtcode1.getText().toString());
table_activationcode.child(edtphone1.getText().toString()).setValue(code);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
//Intent homeIntent = new [enter image description here][1]Intent(ActivationActivity.this, Main2ActivityActivated.class);
//Common.currentUser = user;
//startActivity(homeIntent);
//finish();
});
} else {
Toast.makeText(ActivationActivity.this, "Wrong Password !", Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(ActivationActivity.this, "User not exist in Database !", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
Сначала следует проверить, существуют ли входные данные в базе данных USER, а затем проверить, существуют ли они в базе данных Activationcode. если он существует в обоих, он должен отображать всплывающее сообщение, но если он существует только в базе данных USER, он должен сохранить входные данные в базе данных Activationcode и открыть операцию
[1]: https://i.stack.imgur.com/6i3ns.png