2017-07-17 2 views
0

Ich entwickle eine Android-App, in der ich Firebase Realtime-Datenbank implementiert. Und jetzt möchte ich mich per E-Mail-ID und Passwort anmelden, die in der Datenbank gespeichert sind. Ich weiß, dass Firebase Auth für Authentifizierung verwendet werden kann, aber ich möchte mich mit Realtime-Datenbank anmelden, wie wir es in Sql oder meinem SQL tun.Einloggen mit E-Mail in Firebase Echtzeit-Datenbank gespeichert

database

Antwort

2

Ich habe das getan. Zuerst habe ich Daten von bestimmten E-Mail-ID aus der Datenbank holen und als sein Passwort vergleichen, und die damit verbundene Funktion zuweisen zu tun ..

Query query = databaseReference.child("users").orderByChild("email").equalTo(txvUsername.getText().toString().trim()); 
    query.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if (dataSnapshot.exists()) { 
       // dataSnapshot is the "issue" node with all children with id 0 

       for (DataSnapshot user : dataSnapshot.getChildren()) { 
        // do something with the individual "issues" 
        UsersBean usersBean = user.getValue(UsersBean.class); 

        if (usersBean.password.equals(txvPassword.getText().toString().trim())) { 
         Intent intent = new Intent(context, MainActivity.class); 
         startActivity(intent); 
        } else { 
         Toast.makeText(context, "Password is wrong", Toast.LENGTH_LONG).show(); 
        } 
       } 
      } else { 
       Toast.makeText(context, "User not found", Toast.LENGTH_LONG).show(); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

Dank ..

+0

Danke Kumpel! speicherte meinen Tag :) – Mohammad

+0

Willkommen .. :) @Mohammad –

1

Ich gehe davon aus, dass Sie wissen, wie ValueEventListener zu verwenden, OnDataChange Verfahren und Datasnapshot.

Wie Sie oben erwähnt haben, möchten Sie es in SQL oder MySQL tun. Anstatt E-Mails zu verwenden, verwende ich Benutzername und Passwort.

Sie können Ihren Benutzer authentifizieren, ohne die Firebase-Authentifizierung zu verwenden. Dies wird jedoch nicht für die Datenbanksicherheit empfohlen.

{ 
    "userList": { 
    "JRHTHaIsjNPLXOQivY": { 
     "userName": "userA", 
     "password": "abc123" 
    }, 
    "JRHTHaKuIFIhnj02kE": { 
     "userName": "userB", 
     "password": "abc123" 
    } 
    }, 
    "userAuth": { 
    "userA": "JRHTHaIsjNPLXOQivY", 
    "userB": "JRHTHaKuIFIhnj02kE" 
    } 
} 

Wie Sie oben sehen können, habe ich die userName und userId in Firebase db gespeichert. Wenn ein Benutzer den Benutzernamen und das Passwort eingibt, sollten Sie die Benutzer-ID mithilfe des Benutzernamens in userAuth lesen. Nachdem Sie die Benutzer-ID abgerufen haben, verwenden Sie sie, um auf die Benutzerliste für die Benutzerdetails zuzugreifen. Hier prüfen Sie das eingegebene Passwort.

{ 
    "userList": { 
    "userA": { 
     "password": "abc123" 
    }, 
    "userB": { 
     "password": "abc123" 
    } 
    } 
} 

Oder Sie können nur Ihre Benutzer so authentifizieren.

+0

okey, bekomme ich es aber können Sie Codes für hinzufügen, dass, wie kann ich diese Sachen machen .. –

+1

@UpendraShah Wie für den Code können Sie Firebase-Dokumentation überprüfen, wie Sie es aus der Datenbank speichern und abrufen. https://firebase.google.com/docs/database/android/read-and-write – UmarZaii

+0

Danke für Ihre Antwort. Ich bekomme auf meinem Weg eine Lösung .. –

Verwandte Themen