я хочу проверить, существуют ли данные в базе данных пользователей, если они существуют, перейти к следующему намерению, если нет записи данных в другую базу данных - PullRequest
0 голосов
/ 05 января 2019

Я хочу проверить имя и активацию из базы данных 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...