首页 > 解决方案 > Firebase 不能将 Gmail 帐户用作子帐户

问题描述

child("Members").child("billgate@gmail.com").setValue(people);

这是我在设备上运行它时崩溃的代码,我试图在我的 Android Studio 项目中插入一个 Gmail 帐户作为孩子,但由于某种原因它一直在崩溃,但是当我将它更改为一个简单的名称时它可以工作:

child("Members").child("billgate").setValue(people);

但如果我这样写而不包括@gmail.com 部分,它就可以完美地工作。但是,我需要将 Gmail 帐户设置为我的孩子。

标签: javaandroidfirebase-realtime-database

解决方案


因为 Firebase 不允许符号作为 . 在密钥中,我建议您像这样对电子邮件地址进行编码:

name@email.com -> name@email,com

正如您可能看到的,而不是 . 我用过 ,。为此,您可以使用以下方法:

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

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

推荐阅读