2017-05-24 4 views
1

Ich habe die base64 UTF-8-Codierung der E-Mail. Weil es ein Datenbankschlüssel ist. Die folgenden Probleme treten jedoch auf. Ich brauche Hilfe.Android Firebase-Datenbank Ungültige Token im Pfad

setValue an/user/aW1hZ2VfNTk1NkBuYXZlci5jb20 = fehlgeschlagen: Database: Ungültige Zeichen in Pfad

databaseReference.child("user").child(util.getBase64encode(email)).setValue(userModel) 

mir helfen ...

+0

protokollieren Sie die Base64 verschlüsselte E-Mail und überprüfen Sie, ob es in Ihrer Datenbank gleich –

+0

Works für mich: http://jsbin.com/nemakev/edit?js,console, die https://stackoverflow.firebaseio.com/44160089 schreibt .json –

+1

Der Schrägstrich, /, ist in einem Firebase-Token nicht zulässig. Viele Base64-Kodierungen verwenden '/'. Verwenden Sie einen Base64-Encoder, der kein/erzeugt. Zum Beispiel [verwendet diese Option] (https://developer.android.com/reference/android/util/Base64.html#URL_SAFE). –

Antwort

0

In meinem Fall die codierte Zeichenfolge wurde eine neue Linie mit Am Ende. Unter Verwendung von wie von @Arvin in dieser answer erwähnt, arbeitete als Lösung. Meine Codierungsfunktion sieht nun wie:

public static String encodeToBase64(String strToEncode) { 
    byte[] data = null; 
    try { 
     data = strToEncode.getBytes("UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 
    return Base64.encodeToString(data, Base64.NO_WRAP); 
} 

Wenn Sie sind mit dem Ziel wie sicher zu sein, was oben in den Kommentaren erwähnt @BobSnyder Sie noch URL_SAFE verwenden könnten und schneiden nur den String nur um sicher zu machen.

Verwandte Themen