2017-09-15 1 views
0

Ich möchte einige Felder in Benutzerdetails, die einer bestimmten E-Mail-ID entsprechen, manuell ändern.In Firebase, wie Benutzerdetails auf der Grundlage ihrer E-Mail-ID anstelle von UID oder anderen Anmeldeinformationen festgelegt werden?

Momentan muss ich in der Authentifizierungskonsole nach der E-Mail-ID suchen, die der UID entspricht (was die Grundlage für das Speichern von Benutzerdetails ist), aber das möchte ich nicht tun.

Eine weitere Option, die ich dachte, war die Speicherung von Benutzerdaten auf der Basis ihrer Handynummern (da sie ebenfalls leicht als E-Mail-ID erkennbar ist), aber dies macht das Login-System auf der Basis von Telefonnummer statt E-Mail-ID.

Hauptproblem ist Punkt in E-Mail-IDs, die E-Mail-IDs nicht als Schlüssel speichern lassen.

+1

Siehe https://stackoverflow.com/questions/31904123/good-way-to-replace-invalid-characters-in-firebase-keys –

Antwort

2

Es stimmt, Firebase lässt keine Schlüsselsymbole wie . (Punkt) zu. Es gibt auch andere Symbole wie $ (Dollarzeichen), [ (linke eckige Klammer), ] (rechte eckige Klammer), # (Rautezeichen) und / (Schrägstrich), die ebenfalls verboten sind.

Also, um Ihr Problem zu lösen, müssen Sie die E-Mail-Adresse wie folgt kodieren:

[email protected] -> Name @ email, com

Um dies zu erreichen, i recomand Sie die folgende Methode zu verwenden:

static String encodeUserEmail(String userEmail) { 
    return userEmail.replace(".", ","); 
} 

Und die E-Mail zu entschlüsseln, können Sie die folgende Methode verwenden:

static String decodeUserEmail(String userEmail) { 
    return userEmail.replace(",", "."); 
} 
+0

netter Ansatz, aber was ist, wenn eine E-Mail-Adresse ein Komma (obwohl es selten ist, wie die meisten domain nicht so erlauben) darin, decodierte string unterscheidet sich von original. –

+1

Eine E-Mail-Adresse darf keine Kommas, nur Buchstaben (a-z), Zahlen und Punkte enthalten. Aber wenn du denkst, dass du E-Mail-Adressen haben wirst, die Kommas enthalten, dann kannst du la dot durch ein anderes Symbol oder durch ',,' doppelte oder dreifache Kommas ersetzen. Wie du möchtest. –

+0

Sie können auch auf andere Antworten warten, aber wenn Sie denken, dass meine Antwort Ihnen geholfen hat, denken Sie bitte daran, es zu akzeptieren und eine Stimme abzugeben. Vielen Dank! –

Verwandte Themen