android firebase数据库路径中的令牌无效

时间:2017-05-24 13:39:42

标签: android firebase firebase-realtime-database

我做了电子邮件的base64 utf-8编码。 因为它是数据库密钥。 但是,会出现以下问题。 我需要帮助。

setValue at / user / aW1hZ2VfNTk1NkBuYXZlci5jb20 = 失败:DatabaseError:路径中的令牌无效

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

帮帮我......

1 个答案:

答案 0 :(得分:0)

在我的例子中,编码的字符串最后有一个新行。在此answer中使用@Arvin提到的Base64.NO_WRAP作为解决方案。我的编码功能现在看起来像:

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);
}

如果你像@BobSnyder在上面的评论中提到的那样保持安全,你仍然可以使用URL_SAFE并只修剪字符串以确保。