RegisterActivity

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • RegisterActivity

    Moin Moin ich schreibe gerade ein Login und eine Registrierung leider habe ich wen ich die Methode .getUid() nutze einen Nullpointer der es mir nicht möglich macht einen Button mit Male or Female funktionstüchtig einzufügen.

    Java-Quellcode: RegisterActivity

    1. public class RegisterActivity extends AppCompatActivity {
    2. private Button regi_btn;
    3. private EditText umail, upass,upass_conf, uFirstname, uName, uDate, uPhone;
    4. private ProgressDialog loading;
    5. private RadioGroup uRadioGroup;
    6. private FirebaseAuth mAuth;
    7. private FirebaseAuth.AuthStateListener mAuthStateListener;
    8. @Override
    9. protected void onCreate(Bundle savedInstanceState) {
    10. super.onCreate(savedInstanceState);
    11. setContentView(R.layout.activity_register);
    12. regi_btn = findViewById(R.id.btn_reg);
    13. umail = findViewById(R.id.email);
    14. upass = findViewById(R.id.pass);
    15. uName = findViewById(R.id.uname);
    16. uRadioGroup = findViewById(R.id.radioGroup);
    17. mAuth = FirebaseAuth.getInstance();
    18. mAuthStateListener = new FirebaseAuth.AuthStateListener() {
    19. @Override
    20. public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
    21. final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    22. if(user != null){
    23. Intent intent4 = new Intent(RegisterActivity.this,MainActivity.class);
    24. startActivity(intent4);
    25. finish();
    26. return;
    27. }
    28. }
    29. };
    30. regi_btn.setOnClickListener(new View.OnClickListener() {
    31. @Override
    32. public void onClick(View view) {
    33. final String name = uName.getText().toString();
    34. final String email = umail.getText().toString();
    35. final String pass = upass.getText().toString();
    36. int selectID = uRadioGroup.getCheckedRadioButtonId();
    37. final RadioButton radioButton = findViewById(selectID);
    38. if(radioButton.getText() == null){
    39. return;
    40. }
    41. mAuth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
    42. @Override
    43. public void onComplete(@NonNull Task<AuthResult> task) {
    44. if(!task.isSuccessful()){
    45. Toast.makeText(RegisterActivity.this, "sign_up_error" , Toast.LENGTH_SHORT).show();
    46. }else{
    47. try {
    48. String userID = mAuth.getCurrentUser().getUid();
    49. DatabaseReference currentUserDb = FirebaseDatabase.getInstance().getReference().child("Users").child(radioButton.getText().toString())
    50. .child(userID).child("name");
    51. currentUserDb.setValue(name);
    52. }catch(NullPointerException e){
    53. e.printStackTrace();
    54. }
    55. }
    56. }
    57. });
    58. }
    59. });
    60. }
    61. @Override
    62. protected void onStart() {
    63. super.onStart();
    64. mAuth.addAuthStateListener(mAuthStateListener);
    65. }
    66. @Override
    67. protected void onStop() {
    68. super.onStop();
    69. mAuth.removeAuthStateListener(mAuthStateListener);
    70. }
    71. }
    Alles anzeigen
  • hallo also das mit dem getuid in dem klicklistner kann nicht gehen.
    Gehört dort auch nicht hin.
    Zu diesem Zeitpunkt willst du dich ja erst registrieren. Bist ja noch gar nicht angemeldet.

    Wenn dann kannst du den aktuellen User in dem AuthState listner bekommen.
    Dafür hast du den ja auch erstellt.
    Ein Feedback auf Tipps ist auch schön. :P
  • Java-Quellcode: AuthStateListener

    1. mAuthStateListener = new FirebaseAuth.AuthStateListener() {
    2. @Override
    3. public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
    4. final String name = uName.getText().toString();
    5. int selectID = uRadioGroup.getCheckedRadioButtonId();
    6. final RadioButton radioButton = findViewById(selectID);
    7. final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    8. if(user != null){
    9. Intent intent4 = new Intent(RegisterActivity.this,MainActivity.class);
    10. startActivity(intent4);
    11. finish();
    12. return;
    13. }else{
    14. try {
    15. String userID = mAuth.getCurrentUser().getUid();
    16. DatabaseReference currentUserDb = FirebaseDatabase.getInstance().getReference().child("Users").child(radioButton.getText().toString())
    17. .child(userID).child("name");
    18. currentUserDb.setValue(name);
    19. }catch (NullPointerException e){
    20. e.printStackTrace();
    21. }
    22. }
    Alles anzeigen


    So meintest du es oder? Nur ich denke die if else muss umgeschrieben werden dafür oder?
  • Hallo

    Nur ich denke die if else muss umgeschrieben werden dafür oder?
    Ob die umgeschrieben werden muss keine Ahnung.
    Erstens wird den der Aktuelle User auch zurückgegeben?
    Bei dem Speichern in der DB bin ich mir nicht so sicher ob das Ok ist. Kann da wenig sagen da ich deine Struktur deiner DB nicht kenne.
    Ein Feedback auf Tipps ist auch schön. :P
  • Ich gebs auf ich schreibs nomma komplett von neu wen ich Zeit dafür habe. Trz danke für deine Hilfe. Hatte spaßes halber etwas anderes angefangen um sachen zu testen habe dort dann die regi eingebaut und tadaaa es funktioniert dort. Aber hier nicht ich weiß nicht was ich falsch gemacht habe und finde den dummen fehler auch nicht -.-
  • Moin bin wieder da dieses mal mit dem Login anstatt der Registrierung

    Java-Quellcode: LoginActivity

    1. public class LoginActivity extends AppCompatActivity {
    2. Button uLogin;
    3. EditText uPass, usName , uMail;
    4. long mBackPressed;
    5. private static final int TIME_INTERVAL = 2000;
    6. private String parentDbName = "Users";
    7. Users us;
    8. @Override
    9. protected void onCreate(Bundle savedInstanceState) {
    10. super.onCreate(savedInstanceState);
    11. setContentView(R.layout.activity_login);
    12. if (getSupportActionBar() != null) {
    13. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    14. getSupportActionBar().setTitle("Login");
    15. }
    16. uLogin = findViewById(R.id.btn_log);
    17. usName = findViewById(R.id.uName);
    18. uPass = findViewById(R.id.pass);
    19. uMail = findViewById(R.id.email);
    20. uLogin.setOnClickListener(new View.OnClickListener() {
    21. @Override
    22. public void onClick(View view) {
    23. final String uNam = usName.getText().toString();
    24. final String uPas = uPass.getText().toString();
    25. final String mail = uMail.getText().toString();
    26. if (uNam.isEmpty()) {
    27. usName.setError("Please insert your Username");
    28. usName.requestFocus();
    29. } else if (uPas.isEmpty()) {
    30. uPass.setError("Please inser your password");
    31. uPass.requestFocus();
    32. } else {
    33. allowAccess(uNam, uPas);
    34. }
    35. }
    36. });
    37. }
    38. void allowAccess(final String uName,final String uPass) {
    39. final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    40. ref.addListenerForSingleValueEvent(new ValueEventListener() {
    41. @Override
    42. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    43. if(dataSnapshot.child(parentDbName).child(uName).exists()) {
    44. Users usersData = dataSnapshot.child(parentDbName).child(uName).getValue(Users.class);
    45. try {
    46. if (usersData.getUserName().equals(uName)) {
    47. if (usersData.getPassword().equals(uPass)) {
    48. Toast.makeText(LoginActivity.this, "Login Successfull", Toast.LENGTH_SHORT).show();
    49. Prevalent.currentOnlineUser = usersData;
    50. startActivity(new Intent(LoginActivity.this, NavigationActivity.class));
    51. } else {
    52. Toast.makeText(LoginActivity.this, "Password is incorrect", Toast.LENGTH_SHORT).show();
    53. }
    54. } else {
    55. Toast.makeText(LoginActivity.this, "Your " + uName + " doesn't exist", Toast.LENGTH_SHORT).show();
    56. }
    57. }catch (NullPointerException e){
    58. e.printStackTrace();
    59. }
    60. }
    61. }
    62. @Override
    63. public void onCancelled(@NonNull DatabaseError databaseError) {
    64. }
    65. });
    66. }
    67. private void checkEmailVerified() {
    68. FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    69. if (user != null) {
    70. if (user.isEmailVerified()) {
    71. // user is verified, so you can finish this activity or send user to activity which you want.
    72. finish();
    73. Toast.makeText(LoginActivity.this, "Successfully logged in", Toast.LENGTH_SHORT).show();
    74. } else {
    75. // email is not verified, so just prompt the message to the user and restart this activity.
    76. // NOTE: don't forget to log out the user.
    77. FirebaseAuth.getInstance().signOut();
    78. //restart this activity
    79. }
    80. }
    81. }
    82. }
    83. package com.example.supermarketdiscounter;
    84. import android.content.Intent;
    85. import android.os.Bundle;
    86. import android.view.View;
    87. import android.widget.Button;
    88. import android.widget.EditText;
    89. import android.widget.Toast;
    90. import androidx.annotation.NonNull;
    91. import androidx.appcompat.app.AppCompatActivity;
    92. import com.example.supermarketdiscounter.Model.Users;
    93. import com.example.supermarketdiscounter.Prevalent.Prevalent;
    94. import com.google.firebase.auth.FirebaseAuth;
    95. import com.google.firebase.auth.FirebaseUser;
    96. import com.google.firebase.database.DataSnapshot;
    97. import com.google.firebase.database.DatabaseError;
    98. import com.google.firebase.database.DatabaseReference;
    99. import com.google.firebase.database.FirebaseDatabase;
    100. import com.google.firebase.database.ValueEventListener;
    101. public class LoginActivity extends AppCompatActivity {
    102. Button uLogin;
    103. EditText uPass, usName , uMail;
    104. long mBackPressed;
    105. private static final int TIME_INTERVAL = 2000;
    106. private String parentDbName = "Users";
    107. Users us;
    108. @Override
    109. protected void onCreate(Bundle savedInstanceState) {
    110. super.onCreate(savedInstanceState);
    111. setContentView(R.layout.activity_login);
    112. if (getSupportActionBar() != null) {
    113. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    114. getSupportActionBar().setTitle("Login");
    115. }
    116. uLogin = findViewById(R.id.btn_log);
    117. usName = findViewById(R.id.uName);
    118. uPass = findViewById(R.id.pass);
    119. uMail = findViewById(R.id.email);
    120. uLogin.setOnClickListener(new View.OnClickListener() {
    121. @Override
    122. public void onClick(View view) {
    123. final String uNam = usName.getText().toString();
    124. final String uPas = uPass.getText().toString();
    125. final String mail = uMail.getText().toString();
    126. if (uNam.isEmpty()) {
    127. usName.setError("Please insert your Username");
    128. usName.requestFocus();
    129. } else if (uPas.isEmpty()) {
    130. uPass.setError("Please inser your password");
    131. uPass.requestFocus();
    132. } else {
    133. allowAccess(uNam, uPas);
    134. }
    135. }
    136. });
    137. }
    138. void allowAccess(final String uName,final String uPass) {
    139. final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    140. ref.addListenerForSingleValueEvent(new ValueEventListener() {
    141. @Override
    142. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    143. if(dataSnapshot.child(parentDbName).child(uName).exists()) {
    144. Users usersData = dataSnapshot.child(parentDbName).child(uName).getValue(Users.class);
    145. try {
    146. if (usersData.getUserName().equals(uName)) {
    147. if (usersData.getPassword().equals(uPass)) {
    148. Toast.makeText(LoginActivity.this, "Login Successfull", Toast.LENGTH_SHORT).show();
    149. Prevalent.currentOnlineUser = usersData;
    150. startActivity(new Intent(LoginActivity.this, NavigationActivity.class));
    151. } else {
    152. Toast.makeText(LoginActivity.this, "Password is incorrect", Toast.LENGTH_SHORT).show();
    153. }
    154. } else {
    155. Toast.makeText(LoginActivity.this, "Your " + uName + " doesn't exist", Toast.LENGTH_SHORT).show();
    156. }
    157. }catch (NullPointerException e){
    158. e.printStackTrace();
    159. }
    160. }
    161. }
    162. @Override
    163. public void onCancelled(@NonNull DatabaseError databaseError) {
    164. }
    165. });
    166. }
    167. private void checkEmailVerified() {
    168. FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    169. if (user != null) {
    170. if (user.isEmailVerified()) {
    171. // user is verified, so you can finish this activity or send user to activity which you want.
    172. finish();
    173. Toast.makeText(LoginActivity.this, "Successfully logged in", Toast.LENGTH_SHORT).show();
    174. } else {
    175. // email is not verified, so just prompt the message to the user and restart this activity.
    176. // NOTE: don't forget to log out the user.
    177. FirebaseAuth.getInstance().signOut();
    178. //restart this activity
    179. }
    180. }
    181. }
    182. }
    Alles anzeigen



    Wie kriege ich den Nullpointer in Zeile 84 in der LoginActivity weg?
  • Quellcode

    1. D/[email protected][LoginActivity]: ViewPostIme pointer 0
    2. D/[email protected][LoginActivity]: ViewPostIme pointer 1
    3. W/ClassMapper: No setter/field for First_Name found on class com.example.supermarketdiscounter.Model.Users (fields/setters are case sensitive!)
    4. No setter/field for Last_Name found on class com.example.supermarketdiscounter.Model.Users (fields/setters are case sensitive!)
    5. W/ClassMapper: No setter/field for PhoneNumber found on class com.example.supermarketdiscounter.Model.Users
    6. No setter/field for Password found on class com.example.supermarketdiscounter.Model.Users (fields/setters are case sensitive!)
    7. W/ClassMapper: No setter/field for eMail found on class com.example.supermarketdiscounter.Model.Users
    8. W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
    9. W/System.err: at com.example.supermarketdiscounter.LoginActivity$2.onDataChange(LoginActivity.java:84)
    10. W/System.err: at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:[email protected]@19.0.0:179)
    11. W/System.err: at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:[email protected]@19.0.0:75)
    12. W/System.err: at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:[email protected]@19.0.0:63)
    13. W/System.err: at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:[email protected]@19.0.0:55)
    14. W/System.err: at android.os.Handler.handleCallback(Handler.java:873)
    15. W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
    16. W/System.err: at android.os.Looper.loop(Looper.java:214)
    17. W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6986)
    18. W/System.err: at java.lang.reflect.Method.invoke(Native Method)
    19. W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    20. W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
    Alles anzeigen
  • Quellcode

    1. 2019-08-26 04:58:38.113 21904-16737/? E/SQLiteCastStore: Unable to insert probed socket address: 192.168.178.23/192.168.178.23:8009, CastProbedNetwork. Network ID: null, isDeviceRespondingToProbe: false, lastProbedTimestampMillis: 0, probingErrorCode: 0, numberOfProbedTimes: 0
    2. 2019-08-26 04:58:38.117 21904-16737/? E/SQLiteDatabase: Error inserting network_id=null port=8009 probing_error_code=0 number_of_probed_times=0 is_responding_to_probe=0 last_probed_timestamp_millis=0 host_name=192.168.192.42
    3. android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: ProbedSocketAddress.network_id (code 1299 SQLITE_CONSTRAINT_NOTNULL[1299])
    4. at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
    5. at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:995)
    6. at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
    7. at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
    8. at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:2021)
    9. at android.database.sqlite.SQLiteDatabase.replace(SQLiteDatabase.java:1937)
    10. at prc.b(:[email protected]@18.7.89 (100408-264672080):39)
    11. at pqq.b(:[email protected]@18.7.89 (100408-264672080):4)
    12. at pph.run(Unknown Source:2)
    13. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:459)
    14. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    15. at src.b(:[email protected]@18.7.89 (100408-264672080):33)
    16. at src.run(:[email protected]@18.7.89 (100408-264672080):21)
    17. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    18. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    19. at swy.run(Unknown Source:7)
    20. at java.lang.Thread.run(Thread.java:764)
    21. 2019-08-26 04:58:38.117 21904-16737/? E/SQLiteCastStore: Unable to insert probed socket address: 192.168.192.42/192.168.192.42:8009, CastProbedNetwork. Network ID: null, isDeviceRespondingToProbe: false, lastProbedTimestampMillis: 0, probingErrorCode: 0, numberOfProbedTimes: 0
    22. 2019-08-26 04:58:38.121 21904-16737/? E/SQLiteDatabase: Error inserting network_id=null port=8009 probing_error_code=0 number_of_probed_times=0 is_responding_to_probe=0 last_probed_timestamp_millis=0 host_name=192.168.0.108
    23. android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: ProbedSocketAddress.network_id (code 1299 SQLITE_CONSTRAINT_NOTNULL[1299])
    24. at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
    25. at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:995)
    26. at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
    27. at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
    28. at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:2021)
    29. at android.database.sqlite.SQLiteDatabase.replace(SQLiteDatabase.java:1937)
    30. at prc.b(:[email protected]@18.7.89 (100408-264672080):39)
    31. at pqq.b(:[email protected]@18.7.89 (100408-264672080):4)
    32. at pph.run(Unknown Source:2)
    33. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:459)
    34. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    35. at src.b(:[email protected]@18.7.89 (100408-264672080):33)
    36. at src.run(:[email protected]@18.7.89 (100408-264672080):21)
    37. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    38. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    39. at swy.run(Unknown Source:7)
    40. at java.lang.Thread.run(Thread.java:764)
    41. 2019-08-26 04:58:38.121 21904-16737/? E/SQLiteCastStore: Unable to insert probed socket address: 192.168.0.108/192.168.0.108:8009, CastProbedNetwork. Network ID: null, isDeviceRespondingToProbe: false, lastProbedTimestampMillis: 0, probingErrorCode: 0, numberOfProbedTimes: 0
    42. 2019-08-26 04:58:38.542 4543-4595/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0
    43. 2019-08-26 04:58:44.079 16376-16431/? E/BtGatt.GattService: [GSIM LOG]: gsimLogHandler, msg: MESSAGE_SCAN_START, appName: com.google.uid.shared, scannerId: 8, reportDelayMillis=0
    44. 2019-08-26 04:58:45.593 16376-22598/? E/BtGatt.ContextMap: remove() - removed: 8
    45. 2019-08-26 04:58:45.607 16376-16431/? E/BtGatt.GattService: [GSIM LOG]: gsimLogHandler,
    Alles anzeigen
    Sry max 10000 Zeichen -.-
  • Ok stimmt du wandelt es zu einem String. Habe ich übersehen.


    Da du den Code doppelt gepostest hast was ist nun Zeile 84 ?


    Auch finde ich es nicht sinnig einen Listner in einem Listner zu erstellen.

    Du erstellst den onDataChange Listner erst in dem onKlicklistner.
    Ist so nicht üblich wird so ach nicht sinnvoll laufen.
    Würde den Listner in die onCrate packen und in dem Klicklistner die Werte die der onDataChange liefert abfragen.
    Über Klassen Variablen.



    Frage was macht eigentlich die checkEmailVerified Methode wird nicht benutzt?


    ps

    dein Listner ist auch falsch er weiss ja gar nicht auf welche ref er horchen soll.

    ist falsch wird nicht richtig gehen
    final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    ref.addListenerForSingleValueEvent(new ValueEventListener() {


    besser in etwa so.
    DatabaseReference ref = FirebaseDatabase.getInstance()
    .getReference("users")
    .child(uid)
    .addListenerForSingleValueEvent(new ValueEventListener() {

    du hast hier schon einige fehler Versteckt willst uns wohl testen ;)
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von jogimuc ()

  • Java-Quellcode

    1. public class LoginActivity extends AppCompatActivity {
    2. Button uLogin;
    3. EditText uPass,usName, uMail ;
    4. private static final int TIME_INTERVAL = 2000;
    5. private String parentDbName = "Users";
    6. StringBuffer str = new StringBuffer();
    7. @Override
    8. protected void onCreate(Bundle savedInstanceState) {
    9. super.onCreate(savedInstanceState);
    10. setContentView(R.layout.activity_login);
    11. uLogin = (Button) findViewById(R.id.btn_log);
    12. usName = (EditText)findViewById(R.id.uName);
    13. uPass = (EditText) findViewById(R.id.pass);
    14. uMail = (EditText) findViewById(R.id.email);
    15. if (getSupportActionBar() != null) {
    16. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    17. getSupportActionBar().setTitle("Login");
    18. }
    19. uLogin.setOnClickListener(new View.OnClickListener() {
    20. @Override
    21. public void onClick(View view) {
    22. Login();
    23. }
    24. });
    25. }
    26. void Login(){
    27. String uNam = usName.getText().toString();
    28. String uPas = uPass.getText().toString();
    29. String uMai = uMail.getText().toString();
    30. if(uNam.isEmpty()) {
    31. usName.setError("Please insert your Username");
    32. usName.requestFocus();
    33. } else if (uPas.isEmpty()) {
    34. uPass.setError("Please inser your password");
    35. uPass.requestFocus();
    36. } else {
    37. allowAccess(uPas, uNam);
    38. }
    39. }
    40. void allowAccess(final String uPass, final String name) {
    41. final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
    42. ref.addListenerForSingleValueEvent(new ValueEventListener() {
    43. @Override
    44. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
    45. if (dataSnapshot.child(parentDbName).child(name).exists()) {
    46. Users usersData = dataSnapshot.child(parentDbName).child(name).getValue(Users.class);
    47. try {
    48. if (usersData.getUserName().equals(name)) {// getUserName Nullpointer
    49. if (usersData.getPassword().equals(uPass)) {
    50. Toast.makeText(LoginActivity.this, "Login Successfull", Toast.LENGTH_SHORT).show();
    51. Prevalent.currentOnlineUser = usersData;
    52. startActivity(new Intent(LoginActivity.this, NavigationActivity.class));
    53. } else {
    54. Toast.makeText(LoginActivity.this, "Password is incorrect", Toast.LENGTH_SHORT).show();
    55. }
    56. } else {
    57. Toast.makeText(LoginActivity.this, "Your " + name + " doesn't exist", Toast.LENGTH_SHORT).show();
    58. }
    59. } catch (NullPointerException e) {
    60. e.printStackTrace();
    61. }
    62. }
    63. }
    64. @Override
    65. public void onCancelled(@NonNull DatabaseError databaseError) {
    66. }
    67. });
    68. }
    69. private void checkEmailVerified() {
    70. FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    71. if (user != null) {
    72. if (user.isEmailVerified()) {
    73. // user is verified, so you can finish this activity or send user to activity which you want.
    74. finish();
    75. Toast.makeText(LoginActivity.this, "Successfully logged in", Toast.LENGTH_SHORT).show();
    76. } else {
    77. // email is not verified, so just prompt the message to the user and restart this activity.
    78. // NOTE: don't forget to log out the user.
    79. FirebaseAuth.getInstance().signOut();
    80. //restart this activity
    81. }
    82. }
    83. }
    84. @Override
    85. public void onBackPressed() {
    86. startActivity(new Intent (this,MainActivity.class));
    87. finish();
    88. /* if(mBackPressed + 1000 > System.currentTimeMillis()){
    89. super.onBackPressed();
    90. }else{
    91. Toast.makeText(this, "Press once again to exit", Toast.LENGTH_SHORT).show();
    92. }
    93. mBackPressed = System.currentTimeMillis();*/
    94. }
    95. @Override
    96. public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    97. switch (item.getItemId()) {
    98. case android.R.id.home:
    99. startActivity(new Intent(this, MainActivity.class));
    100. finish();
    101. return true;
    102. default:
    103. return super.onOptionsItemSelected(item);
    104. }
    105. }
    106. }
    Alles anzeigen
    Ich habe es gemerkt mit dem onClick ic h weiß nicht wie mir dies passieren konnte :/ hier der überarbeitete Z. 66
  • final DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); Z.57
    vereinfachte form von
    DatabaseReference ref;
    ref = FireDatabase.getInstance().getReference();
    oder liege ich da falsch?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Xeno ()

  • Hallo
    Wie sieht den überhaupt deine Klasse User aus?

    Und du bist wirklich der Meinung das du hiermit eine Instanz deiner Klasse ohne new erstellst?

    Users usersData = dataSnapshot.child(parentDbName).child(name).getValue(Users.class)


    Eigentlich wird hier ein string zurückgehen.
    String usersData = dataSnapshot.child(parentDbName).child(name).getValue(String.class)

    Nur mal am Rande ein string braucht kein new um instsnzirt zu werden. Ist sozusagen ein Sonderfall.

    Das ist halt oop
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von jogimuc ()

  • Java-Quellcode: Users

    1. package com.example.codingcafe.ecommerce.Model;
    2. public class Users
    3. {
    4. private String name, phone, password, image, address;
    5. public Users()
    6. {
    7. }
    8. public Users(String name, String phone, String password, String image, String address) {
    9. this.name = name;
    10. this.phone = phone;
    11. this.password = password;
    12. this.image = image;
    13. this.address = address;
    14. }
    15. public String getName() {
    16. return name;
    17. }
    18. public void setName(String name) {
    19. this.name = name;
    20. }
    21. public String getPhone() {
    22. return phone;
    23. }
    24. public void setPhone(String phone) {
    25. this.phone = phone;
    26. }
    27. public String getPassword() {
    28. return password;
    29. }
    30. public void setPassword(String password) {
    31. this.password = password;
    32. }
    33. public String getImage() {
    34. return image;
    35. }
    36. public void setImage(String image) {
    37. this.image = image;
    38. }
    39. public String getAddress() {
    40. return address;
    41. }
    42. public void setAddress(String address) {
    43. this.address = address;
    44. }
    45. }
    Alles anzeigen
    Das ist eine gute Frage nein ich bin mir 0 sicher in allem was ich mache mein coden sieht so aus ich überlege mir was ich als nächstest tun muss dann google ich die schlüsselwörter wie z.B. Firebase Login with username and password.
    Und dann bastel ich mir aus den ganzen code schnipseln die ich so finde etwas auf und hoffe das es funktioniert so wie ich es denke.

    Der Login ist durch Stackoverflow und 1 Yt video entstanden. Die Registrierung aus ca 4 srcs, natürlich Stackoverflow und 3 yt videos :D


    Ich hatte den Login mit Auth und signInWithEmail hinbekommen nur weiß ich da dann nicht wie ich den userNamen mittels getter und setter erfrage und in z.B. der ProfileActivity anzeigen lasse da dann keine daten in der RealTime DB von Firebase geschickt werden die ich abfragen könnte.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Xeno ()