Advertisement
Guest User

Untitled

a guest
Apr 16th, 2017
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.25 KB | None | 0 0
  1. usernameTaken:
  2. [ID generated by push()]:
  3. Username: username
  4. users:
  5. UidFromRegistration:
  6. Email: emailFromRegistration
  7. Username: username
  8.  
  9. private void checkUser() {
  10. String username = mUsernameSingUp.getText().toString().trim();
  11.  
  12. mDatabase.child("takenUsernames").orderByChild("Username").equalTo(username).addListenerForSingleValueEvent(new ValueEventListener() {
  13. @Override
  14. public void onDataChange(DataSnapshot dataSnapshot) {
  15. if (!dataSnapshot.hasChildren()) {
  16.  
  17. registerUser();
  18.  
  19. } else {
  20.  
  21. Toast.makeText(SignupActivity.this, "Username already taken", Toast.LENGTH_LONG).show();
  22.  
  23. }
  24. }
  25.  
  26. @Override
  27. public void onCancelled(DatabaseError databaseError) {
  28.  
  29. }
  30. });
  31.  
  32.  
  33. }
  34.  
  35. private void registerUser() {
  36.  
  37. //getting email, username and password from edit texts
  38.  
  39. String username = mUsernameSingUp.getText().toString().trim();
  40. String email = mEmailSingUp.getText().toString().trim();
  41. String password = mPasswordSingUp.getText().toString().trim();
  42.  
  43. //checking if email, passwords and username are empty
  44. if (TextUtils.isEmpty(username)) {
  45. Toast.makeText(SignupActivity.this, "Please enter username", Toast.LENGTH_LONG).show();
  46. return;
  47. }
  48.  
  49. if (TextUtils.isEmpty(email)) {
  50. Toast.makeText(SignupActivity.this, "Please enter email", Toast.LENGTH_LONG).show();
  51. return;
  52. }
  53.  
  54. if (TextUtils.isEmpty(password)) {
  55. Toast.makeText(SignupActivity.this, "Please enter password", Toast.LENGTH_LONG).show();
  56. return;
  57. }
  58.  
  59. //if the email, password and username are not empty
  60. //displaying a progress dialog
  61.  
  62. progressDialog.setMessage("Registering Please Wait...");
  63. progressDialog.show();
  64.  
  65. //creating a new user
  66. mAuth.createUserWithEmailAndPassword(email, password)
  67. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  68. @Override
  69. public void onComplete(@NonNull Task<AuthResult> task) {
  70. //checking if success
  71. if (task.isSuccessful()) {
  72.  
  73. createNewUser(task.getResult().getUser());
  74. startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
  75.  
  76. } else {
  77. //display some message here
  78. Toast.makeText(SignupActivity.this, "Registration Error", Toast.LENGTH_LONG).show();
  79. }
  80. progressDialog.dismiss();
  81. }
  82. });
  83. }
  84.  
  85. private void createNewUser(FirebaseUser userFromRegistration) {
  86.  
  87. String username = mUsernameSingUp.getText().toString().trim();
  88. String emailReg = userFromRegistration.getEmail();
  89. String userIdReg = userFromRegistration.getUid();
  90.  
  91. Map<String, String> newUser = new HashMap<>();
  92. newUser.put("Username", username);
  93. newUser.put("Email", emailReg);
  94. mDatabase.child("users").child(userIdReg).setValue(newUser);
  95.  
  96. Map<String, String> usernameIsTaken = new HashMap<>();
  97. usernameIsTaken.put("Username", username);
  98. mDatabase.child("takenUsernames").push().setValue(usernameIsTaken);
  99.  
  100. }
  101.  
  102. @Override
  103. public void onClick(View view) {
  104.  
  105. if (view == mSingUpBtn) {
  106. checkUser();
  107. }
  108.  
  109. if (view == mRegTv) {
  110. //open login activity when user taps on the already registered textview
  111. startActivity(new Intent(this, LoginActivity.class));
  112. }
  113.  
  114. }
  115. }
  116.  
  117. mDatabase.child("usernameTaken").addValueEventListener(new ValueEventListener() {
  118. @Override
  119. public void onDataChange(DataSnapshot snapshot) {
  120. for(DataSnapshot IDGenerado : snapshot){
  121. String usernameTaken = IDGenerado.child("Username").getValue(String.class);
  122. if(username.equals(usernameTaken))
  123. flag = true; // Indica que ya fue tomado el username
  124. }
  125. // si el flag nunca se marco como verdadero, entonces no se ha tomado el username
  126. if(!flag)
  127. registerUser();
  128. else
  129. Toast.makeText(SignupActivity.this, "Username already taken", Toast.LENGTH_LONG).show();
  130. }
  131.  
  132. @Override public void onCancelled(DatabaseError error) { }
  133. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement