Firebase 路径无效:Firebase 路径不得包含“.”、“#”、“$”、“[”或“]”

Invalid Firebase path: Firebase paths must not contain '.', '#', '$', '[', or ']'

我正在使用 firebase 在 appinventor 上创建一个应用程序,当我向 firebase 引入电子邮件时返回错误,如何解决?

Invalid Firebase path: Firebase paths must not contain '.', '#', '$', '[', or ']'

在 Firebase 实时数据库中使用电子邮件地址作为键不是一个好主意。电子邮件地址有问题,因为它们不区分大小写,用户可能会随着时间的推移而更改它们,正如您所见,它们包含无效字符。

相反,您应该使用其他一些标识符,例如自动推送 ID,或其他一些唯一 ID。您可以将电子邮件地址存储为您为每个用户创建的 space 中的子值,并且如果您愿意,您可以稍后查询用户以查找特定的电子邮件地址。

如果您确实必须使用电子邮件地址作为子键,则需要以某种方式对字符串进行编码以删除无效字符,并且始终记得在搜索时以相同的方式对电子邮件地址字符串进行编码该电子邮件的用户。

如果值包含 . # $ [ ]

,这是一个存储到 firebase 的示例

很简单,在使用电子邮件地址之前将所有'.'替换掉带有“1”。

因此这封电子邮件 "example@email.com" 将看起来像 "example@email1com"。

也可以这样做来替换任何其他非法字符。

这似乎有效

Utils.EncodeString(user.email)

干杯

您收到此异常是因为电子邮件包含无效字符,例如“.”和 '@' 对 firebase 数据库无效。相反,使用用户 ID。 只需使用 FirebaseAuth.getInstance().getCurrentUser().getUid()。 希望问题会消失。

我在尝试使用 orderBy 时收到此错误,因为我从 UI 复制粘贴了如下内容:

.collection("my_collection").orderBy("", "asc")

忘记填写里面的""了...