【问题标题】:Firebase can't use a Gmail account as child [duplicate]Firebase 不能将 Gmail 帐户用作子帐户 [重复]
【发布时间】:2020-02-01 02:13:18
【问题描述】:
child("Members").child("billgate@gmail.com").setValue(people);

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

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

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

【问题讨论】:

  • 查看我的回答,希望对您有所帮助。

标签: java android firebase-realtime-database


【解决方案1】:

您不能在 Firebase 节点名称中使用特殊字符,而是使用用户 ID 而不是电子邮件:

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

或更好的是登录用户的唯一 ID。

child("Members").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(people);

【讨论】:

  • 感谢加斯顿,它就像一个魅力
【解决方案2】:

因为 Firebase 不允许符号作为 .在密钥中,我建议您将电子邮件地址编码如下:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2023-01-31
    • 2018-04-12
    • 1970-01-01
    • 2013-06-22
    • 2019-05-27
    • 2022-01-09
    相关资源
    最近更新 更多